C语言顺序表实现:基础操作与代码示例

顺序表是一种线性数据结构,其元素在内存中连续存储。在 C 语言中,我们可以使用数组来实现顺序表。以下是一个基础的顺序表的 C 语言代码示例,包含了初始化、插入、删除和获取元素等基本操作。

#include <stdio.h>
#include <stdlib.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 pos, int value) {
    if (pos < 1 || pos > list->length + 1) {
        printf('插入位置错误!\n');
        return 0;
    }

    if (list->length >= MAX_SIZE) {
        printf('顺序表已满,无法插入!\n');
        return 0;
    }

    for (int i = list->length; i >= pos; i--) {
        list->data[i] = list->data[i-1];
    }

    list->data[pos-1] = value;
    list->length++;

    return 1;
}

// 删除指定位置的元素
int delete(SeqList *list, int pos) {
    if (pos < 1 || pos > list->length) {
        printf('删除位置错误!\n');
        return 0;
    }

    for (int i = pos; i < list->length; i++) {
        list->data[i-1] = list->data[i];
    }

    list->length--;

    return 1;
}

// 获取指定位置的元素
int get(SeqList *list, int pos) {
    if (pos < 1 || pos > list->length) {
        printf('位置错误!\n');
        return -1;
    }

    return list->data[pos-1];
}

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

    insert(&list, 1, 10);
    insert(&list, 2, 20);
    insert(&list, 3, 30);

    printf('顺序表的长度:%d\n', list.length);
    printf('第1个元素:%d\n', get(&list, 1));
    printf('第2个元素:%d\n', get(&list, 2));
    printf('第3个元素:%d\n', get(&list, 3));

    delete(&list, 2);

    printf('删除第2个元素后的顺序表的长度:%d\n', list.length);
    printf('删除第2个元素后的第1个元素:%d\n', get(&list, 1));
    printf('删除第2个元素后的第2个元素:%d\n', get(&list, 2));

    return 0;
}

该示例中定义了一个 SeqList 结构体,包含一个整型数组 data 和一个整型变量 length,分别用于存储顺序表的数据和长度。

主函数中通过调用 initSeqList 函数进行初始化,然后通过调用 insert 函数插入元素,调用 delete 函数删除元素,调用 get 函数获取元素的值。

运行该程序,输出结果为:

顺序表的长度:3
第1个元素:10
第2个元素:20
第3个元素:30
删除第2个元素后的顺序表的长度:2
删除第2个元素后的第1个元素:10
删除第2个元素后的第2个元素:30

使用说明:

  • initSeqList 函数用于初始化顺序表,将 length 属性设置为 0。
  • insert 函数用于在指定位置插入元素,如果位置错误或顺序表已满,则返回 0;否则返回 1。
  • delete 函数用于删除指定位置的元素,如果位置错误,则返回 0;否则返回 1。
  • get 函数用于获取指定位置的元素,如果位置错误,则返回 -1;否则返回元素的值。

本示例展示了顺序表的常见操作,您可以根据实际需求进行扩展。例如,可以添加查找元素、判断元素是否存在等操作。

C语言顺序表实现:基础操作与代码示例

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

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