数据结构_02_副本.ppt

  1. 1、本文档共110页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在线性表中查找与给定值x相等的数据元素。在 顺序表中完成该运算最简单的方法是:从第一个元素 a1 起依次和 e 比较,直到找到一个与 e 相等的数据 元素,则返回它在顺序表中的存储下标或序号(二者 差一);或者查遍整个表都没有找到与 e 相等的元 素,返回0。 线性表的链式存储结构 特点: (1)用一组任意的存储单元存储线性表的数据元素; (2)利用指针实现了用不相邻的存储单元存放逻辑上相邻的元素; (3)每个数据元素ai,除存储本身信息外,还需存储其直接后继的信息。 该算法的时间复杂度和算法2.7(P26)相同,但空间复杂度不同。在归并两个链表为一个链表时,不需要另建新表的结点空间,而只需将原来两个链表中结点之间的关系解除,重新按元素值非递减的关系将所有结点链接成一个链表即可。 由终端输入集合,先建立表示集合A的静态链表S,而后在输入集合B的元素的同时查找S表,若存在和B相同的元素,则从S表中删除之,否则将此元素插入S表。 void InitSpace_SL(SLinkList space) //将一维数组space中各分量链成一个备用链表,space[0].cur为头指针, //”0”表示空指针 { for(i=0;iMAXSIZE-1; ++i) space[i].cur=i+1; space[MAXSIZE-1].cur=0; } int Malloc_SL(SLinkList space) //若备用空间链表非空,则返回分配的结点下标,否则返回0 { i=space[0].cur; if(space[0].cur) space[0].cur=space[i].cur; return i; } void Free_SL(SLinkList space , int k) //将下标为k的空闲结点回收到备用链表 { space[k].cur=space[0].cur; space[0].cur=k; } void difference(SLinkList space, int S) { InitSpace_SL(space); S=Malloc_SL(space); r=S; scanf(m,n); for(j=1;j=m;++j) { i=Malloc_SL(space); scanf(space[i].data); space[r].cur=i; r=i; } space[r].cur=0; for(j=1;j=n;++j) { scanf(b); p=S; k=space[S].cur; while(k!=space[r].curspace[k].data!=b) { p=k; k=space[k].cur; } if(k==space[r].cur) { i=Malloc_SL(space); space[i].data=b; space[i].cur=space[r].cur; space[r].cur=i; } else { space[p].cur=space[k].cur; Free_SL(space, k); if(r==k) r=p; }

文档评论(0)

xiaofei2001128 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档