当前位置:实例文章 » 其他实例» [文章]数据结构顺序表,实现增删改查

数据结构顺序表,实现增删改查

发布人:shili8 发布时间:2025-01-09 17:24 阅读次数:0

**数据结构顺序表**

顺序表是一种线性数据结构,它的元素按照一定的顺序排列在内存中。每个元素都有一个唯一的索引,称为下标或键。

**实现增删改查**

我们将使用 C语言来实现顺序表的增删改查功能。

### 顺序表结构定义

ctypedef struct {
 int data[100]; // 最多存储100 个元素 int size; // 当前元素数量} SeqList;


### 增加函数增加函数用于向顺序表中添加新元素。

cvoid add(SeqList *list, int value) {
 if (list->size >=100) { // 如果顺序表已满,则不允许添加新元素 printf("顺序表已满,无法添加新元素。
");
 return;
 }
 list->data[list->size] = value; // 将新元素添加到末尾 list->size++; // 更新当前元素数量}


### 删除函数删除函数用于从顺序表中移除指定的元素。

cvoid del(SeqList *list, int index) {
 if (index < 0 || index >= list->size) { // 如果索引无效,则不允许删除元素 printf("索引无效,无法删除元素。
");
 return;
 }
 for (int i = index; i < list->size -1; i++) {
 list->data[i] = list->data[i +1]; // 将后续元素向前移动一位 }
 list->size--; // 更新当前元素数量}


### 修改函数修改函数用于更新顺序表中指定的元素。

cvoid modify(SeqList *list, int index, int value) {
 if (index < 0 || index >= list->size) { // 如果索引无效,则不允许修改元素 printf("索引无效,无法修改元素。
");
 return;
 }
 list->data[index] = value; // 更新指定元素的值}


### 查询函数查询函数用于获取顺序表中指定的元素。

cint query(SeqList *list, int index) {
 if (index < 0 || index >= list->size) { // 如果索引无效,则返回错误值 return -1;
 }
 return list->data[index]; // 返回指定元素的值}


### 主函数
cint main() {
 SeqList list = {{},0}; // 初始化顺序表 add(&list,10); // 添加第一个元素 add(&list,20); // 添加第二个元素 add(&list,30); // 添加第三个元素 printf("当前顺序表:");
 for (int i =0; i < list.size; i++) {
 printf("%d ", query(&list, i));
 }
 printf("
"); // 输出当前顺序表 del(&list,1); // 删除第二个元素 printf("当前顺序表:");
 for (int i =0; i < list.size; i++) {
 printf("%d ", query(&list, i));
 }
 printf("
"); // 输出当前顺序表 modify(&list,1,40); // 修改第二个元素的值 printf("当前顺序表:");
 for (int i =0; i < list.size; i++) {
 printf("%d ", query(&list, i));
 }
 printf("
"); // 输出当前顺序表 return0;
}


**输出结果**

当前顺序表:102030当前顺序表:1030当前顺序表:1040


以上是对顺序表的增删改查功能的实现和示例代码。

相关标签:windows
其他信息

其他资源

Top