第2章1在线性表上实现插入、删除元素.docVIP

第2章1在线性表上实现插入、删除元素.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
9. 向线性表中按给定条件插入一个元素 存在三种情况: 1)当该函数的pos参数为0时,则需要实现在有序表上的插入,并且要保证插入新元素后仍为一个有序表。 2)当该函数的pos参数等于-1,要求把item插入到线性表的表尾,即第L.size+1的元素位置上。 3)当该函数的pos参数为大于等于1,同时小于等于线性表长度加1时,则直接把item插入到线性表的第pos个元素的位置上。 注意事项: 在线性表的第pos个元素的位置插入一个新元素前,还要检查存储线性表的动态数组空间是否具有空闲位置,若没有,则要扩大原有的空间。 为了实现在第pos个元素的位置插入新元素,还要把从该位置开始的其后所有元素均后移一个位置,以便空出第pos个元素的位置,用于写入新元素。 完成插入后,要使线性表的长度域增1,然后返回真结束算法。 根据以上分析编写出此算法如下: bool InsertList(List L, ElemType item, int pos) { //检查pos值是否有效,若无效则无法插入,返回假 if(pos-1 || posL.size+1) { coutpos值无效!endl; return false; } //求出按值有序插入时item的插入位置,使之保存到pos中 int i; if(pos==0) { for(i=0; iL.size; i++) if(itemL.list[i]) break; pos=i+1; } //得到表尾插入位置,被保存在pos中 else if(pos==-1) pos=L.size+1; //若线性表存储空间用完,则重新分配大一倍的存储空间 if(L.size==L.MaxSize) { int k=sizeof(ElemType); //计算每个元素存储空间的长度 L.list=(ElemType*)realloc(L.list, 2*L.MaxSize*k); //线性表动态存储空间扩展为原来的2倍,原内容不变 if(L.list==NULL) { cout动态可分配的存储空间用完,退出运行!endl; exit(1); } L.MaxSize=2*L.MaxSize; //把线性表空间大小修改为新的长度 } //待插入位置及所有后续位置元素,从后向前依次后移一个位置 for(i=L.size-1; i=pos-1; i--) L.list[i+1]=L.list[i]; //把item的值赋给已空出的、下标为pos-1的位置,它为第pos个元素位置 L.list[pos-1]=item; L.size++;  //线性表长度增1 return true;   //返回真表示插入成功 } 10. 从线性表中删除符合给定条件的第一个元素 此算法同上面插入元素的算法类似,具体描述如下: bool DeleteList(List L, ElemType item, int pos) { //检查线性表是否为空,若是则无法删除,返回假 if(L.size==0) { cout线性表为空,删除无效!endl; return false; } //检查pos值是否有效,若无效则无法删除,返回假 if(pos-1 || posL.size) { coutpos值无效!endl; return false; }

文档评论(0)

考试教学资料 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档