- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
2.3.2单线性链式的基本操作1建立单链表假设线性表中结点的数据类型是整型,以32767作为结束标志。动态地建立单链表的常用方法有如下两种:头插入法,尾插入法。⑴头插入法建表从一个空表开始,重复读入数据,生成新结点,将读入数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头上,直到读入结束标志为止。即每次插入的结点都作为链表的第一个结点。第28页,共74页,星期日,2025年,2月5日算法描述LNode*create_LinkList(void)/*头插入法创建单链表,链表的头结点head作为返回值*/{intdata;LNode*head,*p;head=(LNode*)malloc(sizeof(LNode));head-next=NULL;/*创建链表的表头结点head*/while(1){scanf(“%d”,data);if(data==32767)break;p=(LNode*)malloc(sizeof(LNode));p–data=data;/*数据域赋值*/第29页,共74页,星期日,2025年,2月5日p–next=head–next;head–next=p;/*钩链,新创建的结点总是作为第一个结点*/}return(head);}(2)尾插入法建表头插入法建立链表虽然算法简单,但生成的链表中结点的次序和输入的顺序相反。若希望二者次序一致,可采用尾插法建表。该方法是将新结点插入到当前链表的表尾,使其成为当前链表的尾结点。第30页,共74页,星期日,2025年,2月5日算法描述LNode*create_LinkList(void)/*尾插入法创建单链表,链表的头结点head作为返回值*/{intdata;LNode*head,*p,*q;head=p=(LNode*)malloc(sizeof(LNode));p-next=NULL;/*创建单链表的表头结点head*/while(1){scanf(“%d”,data);if(data==32767)break;q=(LNode*)malloc(sizeof(LNode));q–data=data;/*数据域赋值*/q–next=p–next;p–next=q;p=q;第31页,共74页,星期日,2025年,2月5日/*钩链,新创建的结点总是作为最后一个结点*/}return(head);}无论是哪种插入方法,如果要插入建立的单线性链表的结点是n个,算法的时间复杂度均为O(n)。对于单链表,无论是哪种操作,只要涉及到钩链(或重新钩链),如果没有明确给出直接后继,钩链(或重新钩链)的次序必须是“先右后左”。第32页,共74页,星期日,2025年,2月5日2单链表的查找(1)按序号查找取单链表中的第i个元素。对于单链表,不能象顺序表中那样直接按序号i访问结点,而只能从链表的头结点出发,沿链域next逐个结点往下有哪些信誉好的足球投注网站,直到有哪些信誉好的足球投注网站到第i个结点为止。因此,链表不是随机存取结构。设单链表的长度为n,要查找表中第i个结点,仅当1≦i≦n时,i的值是合法的。第33页,共74页,星期日,2025年,2月5日算法描述ElemTypeGet_Elem(LNode*L,inti){intj;LNode*p;p=L-next;j=1;/*使p指向第一个结点*/while(p!=NULLji){p=p–next;j++;}/*移动指针p,j计数*/if(j!=i)return(-32768);elsereturn(p-data);/*p为NULL表示i太大;ji表示i为0*/}移动指针p的频度:i1时:0次;i∈[1,n]:i-1次;in:n次。∴时间复杂度:O(n)。第34页,共74页,星期日,2025年,2月5日(2)按值查找按值查找是在链表中,查找是否有结点值等于给定值key的结点?若有,则返回首次找到的值为key的结点的存储位置;否则返回NULL。查找时从开始结点出发,沿
文档评论(0)