C语言实现线性表基本操作

本篇博客将介绍如何使用 C 语言编写一个线性表操作测试程序。程序提供以下功能:

  • 插入数据元素
  • 查找数据元素
  • 删除数据元素
  • 显示数据元素
  • 线性表合并
  • 清空线性表

程序启动后,会显示功能菜单,用户可根据需要选择相应操作。

C 代码示例:

#include <stdio.h>
#include <stdlib.h>

#define MAX_SIZE 100

typedef struct {
    int data[MAX_SIZE];
    int length;
} LinearList;

void initList(LinearList *list) {
    list->length = 0;
}

void insertElement(LinearList *list, int element) {
    if (list->length >= MAX_SIZE) {
        printf('线性表已满,无法插入元素。\n');
        return;
    }
    
    list->data[list->length] = element;
    list->length++;
    printf('元素插入成功。\n');
}

void displayList(LinearList list) {
    if (list.length == 0) {
        printf('线性表为空。\n');
        return;
    }
    
    printf('线性表中的元素为:');
    for (int i = 0; i < list.length; i++) {
        printf('%d ', list.data[i]);
    }
    printf('\n');
}

int findElement(LinearList list, int element) {
    for (int i = 0; i < list.length; i++) {
        if (list.data[i] == element) {
            return i;
        }
    }
    
    return -1;
}

void deleteElement(LinearList *list, int element) {
    int index = findElement(*list, element);
    if (index == -1) {
        printf('未找到指定元素。\n');
        return;
    }
    
    for (int i = index; i < list->length - 1; i++) {
        list->data[i] = list->data[i + 1];
    }
    list->length--;
    printf('元素删除成功。\n');
}

void mergeLists(LinearList *list1, LinearList list2) {
    if (list1->length + list2.length > MAX_SIZE) {
        printf('线性表合并后超过最大长度,无法合并。\n');
        return;
    }
    
    for (int i = 0; i < list2.length; i++) {
        list1->data[list1->length] = list2.data[i];
        list1->length++;
    }
    printf('线性表合并成功。\n');
}

void clearList(LinearList *list) {
    list->length = 0;
    printf('线性表已清空。\n');
}

int main() {
    LinearList list;
    initList(&list);
    
    int choice;
    int element;
    
    while (1) {
        printf('\n线性表基本操作实验\n');
        printf('1、输入元素                              2、查看输入的元素\n');
        printf('3、查找指定值的元素                      4、删除指定元素\n');
        printf('5、插入元素                              6、线性表合并\n');
        printf('7、清空线性表\n');
        printf('请选择(1-7):');
        scanf('%d', &choice);
        
        switch (choice) {
            case 1:
                printf('请输入要插入的元素:');
                scanf('%d', &element);
                insertElement(&list, element);
                break;
            case 2:
                displayList(list);
                break;
            case 3:
                printf('请输入要查找的元素:');
                scanf('%d', &element);
                int index = findElement(list, element);
                if (index != -1) {
                    printf('元素 %d 的索引位置为 %d。\n', element, index);
                } else {
                    printf('未找到指定元素。\n');
                }
                break;
            case 4:
                printf('请输入要删除的元素:');
                scanf('%d', &element);
                deleteElement(&list, element);
                break;
            case 5:
                printf('请输入要插入的元素:');
                scanf('%d', &element);
                insertElement(&list, element);
                break;
            case 6:
                printf('请输入要合并的线性表中的元素个数:');
                int count;
                scanf('%d', &count);
                LinearList list2;
                initList(&list2);
                printf('请输入要合并的线性表中的元素:');
                for (int i = 0; i < count; i++) {
                    scanf('%d', &element);
                    insertElement(&list2, element);
                }
                mergeLists(&list, list2);
                break;
            case 7:
                clearList(&list);
                break;
            default:
                printf('无效的选择。\n');
                break;
        }
    }
    
    return 0;
}

代码说明:

  • 程序首先定义了一个 LinearList 结构体,包含一个整数数组 data 用于存储线性表元素,以及一个整数 length 表示线性表的长度。
  • 程序提供了一系列函数来实现对线性表的操作,例如 initList() 用于初始化线性表,insertElement() 用于插入元素,displayList() 用于显示线性表元素等。
  • main() 函数中,程序首先初始化一个线性表,然后进入一个循环,根据用户输入的选项调用相应的函数进行操作。

希望以上代码能够帮助您理解如何使用 C 语言实现线性表的基本操作。

C语言线性表操作:插入、查找、删除、合并等功能详解

原文地址: https://www.cveoy.top/t/topic/SPy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录