1 #include <stdio.h> 2 #include <malloc.h> 3 #include <stdlib.h> 4 #define MaxSize 50 5 #define InitSize 100 6 typedef int ElemType; 7 typedef struct { 8 ElemType data[MaxSize]; //假定顺序表的元素类型ElemType 9 int length; //顺序表的当前长度 10 }SqList; //顺序表的类型定义 11 12 //静态分配。动态分配 13 14 typedef struct { 15 ElemType *data; //指定动态分配数组的指针 16 int length; //数组的最大容量和当前个数 17 }SeqList; //动态分配数组顺序表的类型定义 18 //c:malloc,c++:new 19 20 21 //11 插入操作 i位置(1<=i<L.length+1) 22 bool ListInsert(SqList &L,int i,ElemType e){ 23 if(i<1||i>L.length+1) //判断i的插入位置是否合法 24 return false; 25 if(L.length>=MaxSize) //判断存储空间是否已满。满则不插 26 return false; 27 for(int j=L.length;j>=i;j--) //开始是length-1~i,插入数据是i(j)~length-1+1 28 L.data[j]=L.data[j-1]; //i后元素后移 i==> 29 L.data[i-1]=e;//i位置插入 30 L.length++; 31 return true; 32 } 33 34 //22 删除操作 i位置(1<=i<L.length)(范围和插入不同) 35 bool ListDelete(SqList &L,int i,ElemType &e){ 36 if(i<1||i>L.length) 37 return false; 38 e=L.data[i-1];//i位置删除,下标i-1+1后 即i后元素前移 i<== 39 for(int j=i;j<L.length;j++) //开始是length-1~i,插入数据是i(j)~length-1+1 40 L.data[j-1]=L.data[j]; //i 41 L.length--; 42 return true; 43 } 44 45 int main() 46 { 47 SqList L; 48 int i=0,e=0; 49 int flag=0; 50 L.length=0; 51 for(i=0;i<10;i++){ 52 L.data[i]=i;//赋初值 53 L.length++; //length不能丢 54 } 55 56 ListInsert(L,2,121);//i代表插入位置是从1开始,不要和数组下标混淆 57 ListInsert(L,3,2333); 58 ListDelete(L,3,e);//一次性操作 59 for(i=0;i<L.length;i++){ 60 printf("%d\t",L.data[i]); 61 } 62 return 0; 63
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App