C语言线性表操作:插入、查找、删除、合并等功能详解
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 语言实现线性表的基本操作。
原文地址: https://www.cveoy.top/t/topic/SPy 著作权归作者所有。请勿转载和采集!