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;
}

使用说明

  1. 编译运行程序。
  2. 根据菜单提示选择功能并输入所需信息。
  3. 程序会根据用户的选择执行相应的操作,并在屏幕上显示结果。

总结

本程序是一个简单的线性表操作测试程序,可以帮助用户更好地理解和掌握线性表的基本操作。用户可以根据自己的需要修改和扩展程序的功能。

C语言线性表操作测试程序:实现插入、查找、删除、合并等功能

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

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