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 = ; } // 判断顺序表是否为空 int isEmpty(SeqList list) { return list.length == 0; } // 求顺序表的长度 int getLength(SeqList list) { return list.length; } // 插入元素到顺序表的第i个位置 int insertElement(SeqList *list, int i, int elem) { if (i < 1 || i > list->length + 1) { printf("插入位置有误\n"); return 0; } if (list->length >= MAX_SIZE) { printf("顺序表已满,无法插入元素\n"); return 0; } for (int j = list->length; j >= i; j--) { list->data[j] = list->data[j - 1]; // 后移元素 } list->data[i - 1] = elem; list->length++; return 1; } // 删除顺序表的第i个元素 int deleteElement(SeqList *list, int i) { if (i < 1 || i > list->length) { printf("删除位置有误\n"); return 0; } for (int j = i; j < list->length; j++) { list->data[j - 1] = list->data[j]; // 前移元素 } list->length--; return 1; } // 获取顺序表的第i个元素的值 int getElement(SeqList list, int i) { if (i < 1 || i > list.length) { printf("位置有误\n"); return -1; } return list.data[i - 1]; } // 查找顺序表中与给定元素e满足关系的位置 int findIndex(SeqList list, int e) { for (int i = 0; i < list.length; i++) { if (list.data[i] == e) { return i + 1; // 返回位置,从1开始记 } } return -1; // 未找到返回-1 } // 销毁顺序表 void destroy(SeqList *list) { list->length = 0; } int main() { SeqList list; initSeqList(&list); insertElement(&list, 1, 1); insertElement(&list, 2, 3); insertElement(&list, 3, 5); insertElement(&list, 4, 7); insertElement(&list, 5, 9); printf("顺序表长度为:%d\n", getLength(list)); printf("第3个元素为:%d\n", getElement(list, 3)); printf("元素7在表中的位置为:%d\n", findIndex(list, 7)); deleteElement(&list, 2); printf("删除第2个元素后的顺序表长度为:%d\n", getLength(list)); destroy(&list); printf("销毁后的顺序表长度为:%d\n", getLength(list)); return 0; } ``` 上述代码实现了基本的顺序表功能,包括建表、初始化、销毁、判空、求表长、插入删除、查找第i个元素、查找与e满足关系的位置等操作。 ######[AI写代码神器 | 2210点数解答 | 2024-03-21 16:53:28]
- C语言实现多班级学生信息管理系统:含增删改查与多样排序功能(GPT | 2547点数解答 | 2024-12-15 22:08:58)358
- C语言实现学生信息管理系统:含增删改查与多种排序功能(GPT | 6408点数解答 | 2024-12-15 22:10:03)350
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)345
- Golang开发:解析JSON数据时数值默认类型及示例解析(百度文心 | 393点数解答 | 2023-11-09 18:13:06)278
- SQL Working Areas Sizing: Manual vs. Automatic Policy - A Comprehensive Analysis(阿里通义 | 530点数解答 | 2024-05-13 10:55:58)308
- 重新定义字母大小关系:让 “L 队” 字典序小于 “某 E” 的代码实现与分析(字节豆包 | 595点数解答 | 2025-12-03 19:44:59)66
- 深入解析格雷码生成算法:递归求解与代码实现(DeepSeek | 443点数解答 | 2026-01-05 12:21:49)52
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)313
- 基于 LPC1114 的多功能电子钟:强大功能+完整代码揭秘!(字节豆包 | 787点数解答 | 2025-05-11 21:01:44)225
- 基于 LPC1114 的多功能电子钟:从功能设计到代码框架全揭秘(字节豆包 | 532点数解答 | 2025-05-15 08:32:18)151
- 基于LPC1114的多功能电子钟:从设计方案到完整代码大揭秘!(字节豆包 | 3363点数解答 | 2025-05-15 23:37:14)245
- 基于LPC1114的多功能电子钟:设计方案、硬件框图与完整代码大揭秘(字节豆包 | 561点数解答 | 2025-05-22 17:56:20)160