C语言线性表操作测试程序:实现插入、查找、删除、合并等功能
C语言线性表操作测试程序
本程序用C语言实现了一个简单的线性表操作测试程序,包含插入数据元素、查找数据元素、删除数据元素、显示数据元素等基本功能,并提供线性表合并和清空线性表的功能。
程序功能
程序启动后,会显示以下功能菜单:
线性表基本操作实验
1. 输入元素 2. 查看输入的元素
3. 查找指定值的元素 4. 删除指定元素
5. 插入元素 6. 线性表合并
7. 清空线性表
请选择(1-7)
按数字1-7完成指定的功能
用户可以根据需要选择相应的选项执行操作。
代码实现
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
typedef struct {
int data[MAX_SIZE];
int length;
} List;
void displayList(List list) {
printf('List elements: ');
for (int i = 0; i < list.length; i++) {
printf('%d ', list.data[i]);
}
printf('\n');
}
void insertElement(List *list, int element) {
if (list->length == MAX_SIZE) {
printf('List is full. Cannot insert.\n');
return;
}
list->data[list->length] = element;
list->length++;
printf('Element %d inserted successfully.\n', element);
}
void searchElement(List list, int element) {
int found = 0;
for (int i = 0; i < list.length; i++) {
if (list.data[i] == element) {
printf('Element %d found at index %d.\n', element, i);
found = 1;
break;
}
}
if (!found) {
printf('Element %d not found.\n', element);
}
}
void deleteElement(List *list, int element) {
int found = 0;
for (int i = 0; i < list->length; i++) {
if (list->data[i] == element) {
for (int j = i; j < list->length - 1; j++) {
list->data[j] = list->data[j + 1];
}
list->length--;
found = 1;
break;
}
}
if (found) {
printf('Element %d deleted successfully.\n', element);
} else {
printf('Element %d not found.\n', element);
}
}
void mergeLists(List *list1, List *list2) {
if (list1->length + list2->length > MAX_SIZE) {
printf('Lists are too large to merge.\n');
return;
}
for (int i = 0; i < list2->length; i++) {
list1->data[list1->length] = list2->data[i];
list1->length++;
}
printf('Lists merged successfully.\n');
}
void clearList(List *list) {
list->length = 0;
printf('List cleared successfully.\n');
}
int main() {
List list;
list.length = 0;
int choice, element;
do {
printf('\nLinear List Operations\n');
printf('1. Insert element\n');
printf('2. View elements\n');
printf('3. Search element\n');
printf('4. Delete element\n');
printf('5. Insert into list\n');
printf('6. Merge lists\n');
printf('7. Clear list\n');
printf('Select an option (1-7): ');
scanf('%d', &choice);
switch (choice) {
case 1:
printf('Enter element to insert: ');
scanf('%d', &element);
insertElement(&list, element);
break;
case 2:
displayList(list);
break;
case 3:
printf('Enter element to search: ');
scanf('%d', &element);
searchElement(list, element);
break;
case 4:
printf('Enter element to delete: ');
scanf('%d', &element);
deleteElement(&list, element);
break;
case 5:
printf('Enter element to insert: ');
scanf('%d', &element);
insertElement(&list, element);
break;
case 6:
// Creating a second list for merging
List list2;
list2.length = 0;
printf('Enter elements of second list (enter -1 to stop):\n');
while (1) {
scanf('%d', &element);
if (element == -1) {
break;
}
insertElement(&list2, element);
}
mergeLists(&list, &list2);
break;
case 7:
clearList(&list);
break;
default:
printf('Invalid choice. Please enter a number between 1 and 7.\n');
break;
}
} while (choice >= 1 && choice <= 7);
return 0;
}
使用说明
- 编译运行程序。
- 根据菜单提示选择功能并输入所需信息。
- 程序会根据用户的选择执行相应的操作,并在屏幕上显示结果。
总结
本程序是一个简单的线性表操作测试程序,可以帮助用户更好地理解和掌握线性表的基本操作。用户可以根据自己的需要修改和扩展程序的功能。
原文地址: https://www.cveoy.top/t/topic/SNH 著作权归作者所有。请勿转载和采集!