顺序表将数据存储在计算机内存中的相邻存储单元内,故结构体内部存储直接使用数组即可。
代码实现#include#define MAX_SIZE 50 typedef int ElemType; //typedef命名一个名字叫SqList的结构体 typedef struct{ ElemType data[MAX_SIZE]; //定义一个最大为50的数组 int length; //定义当前顺序表的长度(有多少个元素) } SqList; bool ListInsert(SqList &L, int i, ElemType e){ //判断要插入的位置是否合法 if(i<1 || i>L.length) { //i小于1或者大于当前顺序表的长度,都是不对的,最小为1,最大为当前顺序表长度(数组比顺序表长度少1) printf("插入位置不合法n"); return false; } //判断是否超出空间了 if(L.length+1 > MAX_SIZE){ printf("超出空间n"); return false; } //插入操作 for(int j = L.length; j>=i; j--){ L.data[j] = L.data[j-1]; } //在数组上第i-1的位置插入数据 L.data[i-1] = e; //顺序表长度+1 L.length++; return true; } bool ListDelete(SqList &L, int i, ElemType &e){ //判断删除的位置是否合法 if (i<1 || i>L.length){ printf("删除位置不合法n"); return false; } //将要删除的值赋给e e = L.data[i-1]; //将值删除 for(int j=i; j 运行结果截图 运行环境 macOS BigSur
心得
CLion
(使用其他环境的同学注意环境配置)距离最一开始学习数据结构与算法已经过去一年多了,再一次踏上对数据结构的王道征途,心情难免有些忐忑和激动。文章与代码难免出错,麻烦您在评论区指出,我一定第一时间内改正。



