酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

用数据结构c语言的知识,并且利用顺序表存储方式实现顺序表的基本功能:建表,初始化,销毁,判空,求表长,插入删除,查找第i个元素是什么,查找与e满足关系的位置

下面是基于顺序表的实现代码示例: ```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满足关系的位置等操作。 [2024-03-21 16:53:28 | AI写代码神器 | 2210点数解答]

相关提问