以下是使用C语言完成线性顺序存储结构的定义和基本操作的示例代码:

#include <stdio.h>
#define MAX_SIZE 100

// 定义顺序表结构
typedef struct {
    int data[MAX_SIZE];
    int length;
} SeqList;

// 初始化顺序表
void initSeqList(SeqList* list) {
    list->length = 0;
}

// 元素插入
int insert(SeqList* list, int position, int element) {
    if (position < 1 || position > list->length + 1) {
        printf('插入位置错误!\n');
        return -1;
    }
    if (list->length >= MAX_SIZE) {
        printf('顺序表已满,无法插入!\n');
        return -1;
    }
    for (int i = list->length; i >= position; i--) {
        list->data[i] = list->data[i - 1]; // 后移元素
    }
    list->data[position - 1] = element;
    list->length++;
    return 0;
}

// 元素查找
int search(SeqList* list, int element) {
    for (int i = 0; i < list->length; i++) {
        if (list->data[i] == element) {
            return i + 1; // 返回元素的位置
        }
    }
    return -1; // 未找到元素
}

// 元素删除
int removeElement(SeqList* list, int element) {
    int position = search(list, element);
    if (position == -1) {
        printf('未找到待删除元素!\n');
        return -1;
    }
    for (int i = position; i < list->length; i++) {
        list->data[i - 1] = list->data[i]; // 前移元素
    }
    list->length--;
    return 0;
}

// 元素修改
int modify(SeqList* list, int position, int element) {
    if (position < 1 || position > list->length) {
        printf('修改位置错误!\n');
        return -1;
    }
    list->data[position - 1] = element;
    return 0;
}

// 打印顺序表
void print(SeqList* list) {
    printf('顺序表元素为:');
    for (int i = 0; i < list->length; i++) {
        printf('%d ', list->data[i]);
    }
    printf('\n');
}

int main() {
    SeqList list;
    initSeqList(&list);

    insert(&list, 1, 10);
    insert(&list, 2, 20);
    insert(&list, 3, 30);
    print(&list); // 输出:顺序表元素为:10 20 30

    int position = search(&list, 20);
    printf('元素20的位置为:%d\n', position); // 输出:元素20的位置为:2

    removeElement(&list, 20);
    print(&list); // 输出:顺序表元素为:10 30

    modify(&list, 2, 40);
    print(&list); // 输出:顺序表元素为:10 40

    return 0;
}

上述代码使用C语言实现了顺序表的定义和基本操作。其中,元素插入使用insert函数实现,在指定的位置插入元素;元素查找使用search函数实现,返回元素的位置;元素删除使用removeElement函数实现,删除指定的元素;元素修改使用modify函数实现,在指定的位置修改元素。最后,通过print函数打印顺序表的所有元素。在main函数中进行了一些简单的测试操作。

C语言实现线性顺序存储结构:顺序表的定义及基本操作

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

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