插入:在下标p处插入数据x;返回是否成功(0/1)几个注意点:1.还能否插入数据;2.给的下标p是否是错误的以及p的范围;3.移动时的易错点(从下标大的元素开始);4.n与palist-n;elelmen[p]与palist-element[p]int ...

插入:在下标p处插入数据x;返回是否成功(0/1)
几个注意点:1.还能否插入数据;2.给的下标p是否是错误的以及p的范围;3.移动时的易错点(从下标大的元素开始);4.n与palist->n;elelmen[p]与palist->element[p]
int insertPre_seq(PSeqList palist,int p,DataType x){ int q; //两种退出情况 if (palist->n >= palist->MAXNUM){ printf("OVERFLOW!"); //1.顺序表中存入的数据已经满了 return 0; } if (p<0 || p>palist->n){ printf("WRONGNUM"); //2.下标不存在 return 0; } for (q=palist->n-1;q>=p;q--){ //移动时从下标大的元素开始,如果从下标小的地方开始,后续的数据全部变成原来的palist->element[p] palist->element[q+1] = palist->element[q]; } palist->element[p] = x; palist->n = palist->n + 1; return 1; }
在写程序的时候经常会不由自主地写成n而不是正确的palist->n;
主要就是能够理解为什么要从下标大的元素开始,后面还会有从下标小的元素开始。
删除:
int deleteP_seq(PSeqList palist,int p){ int q; if (p<0 || p>=palist->n){ printf("WRONGNUM!"); //一种退出情况,就是输入有问题 return 0; } for (q=p;q<palist->n-1;q++){ palist->element[q] = palist->element[q+1]; //移动从下标小的元素开始 } palist->n = palist->n - 1; return 1; }
删除理解起来比插入简单。
书中未给出的另一种插入和删除后续给出
织梦狗教程
本文标题为:顺序表的插入和删除(基于c语言)


基础教程推荐
猜你喜欢
- [c语言-函数]不定量参数 2023-09-08
- centos 7 vscode cmake 编译c++工程 2023-09-17
- 全面了解C语言 static 关键字 2023-03-26
- C语言编程C++旋转字符操作串示例详解 2022-11-20
- [C语言]二叉搜索树 2023-09-07
- C语言实现宾馆管理系统课程设计 2023-03-13
- C++实战之二进制数据处理与封装 2023-05-29
- C语言 详解字符串基础 2023-03-27
- 带你深度走入C语言取整以及4种函数 2022-09-17
- C++实现ETW进行进程变动监控详解 2023-05-15