数据结构顺序表,实现增删改查
发布人: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
以上是对顺序表的增删改查功能的实现和示例代码。