网站大量收购独家精品文档,联系QQ:2885784924

数据结构CC+循环链表.pptxVIP

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

例3.1有一个单链表L(至少有一个结点),其头结点指针为head,编写一个函数将L逆置,即最后一个结点变成第1个结点,原来倒数第二个结点变成第二个结点……如此等等。解:本题采用的算法是,从头到尾遍历单链表L,并设置3个附加指针p、q、r,p指向当前处理的结点,q指向p的下一个结点,r指向q的下一个结点,q、r的作用是为了防止倒置指针时,下一个结点的丢失而设置的,有了这三个指针,就可以方便地实现指针的倒置。最后将个结点的next域置为NULL,并将头指针指向最后一个结点,这样达到了本题的要求。数据结构CC+循环链表共24页,您现在浏览的是第1页!

voidinvert(linklisthead){linklistp,q,r;p=head;q=p-next;while(q!=NULL)/*没有后继时停止*/{r=q-next;q-next=p;p=q;q=r;}head-next=NULL;head=p;}typedefstructnode{datatypedata;structnode*next;}*linklist;数据结构CC+循环链表共24页,您现在浏览的是第2页!

堆栈的最简单的表示方法是采用一维数组,为形象起见,一般在图中将堆栈画成竖直的。设数组名为data,其下标的下界为0,上界为n。一般需用一个变量top记录当前栈顶的下标值,top也叫做栈指针。topADCB3642105data本例中top=4在C语言中通常用以下方式定义一个顺序栈结构体:#defineN30Typedefstructstack{datatypedata[N];Inttop;}sqstack;3.2链表应用数据结构CC+循环链表共24页,您现在浏览的是第3页!

#defineN30Typedefstructstack{datatypedata[N];Inttop;}sqstack;voidpop(sqstack*p){if(p-top==-1)printf(“空栈!\n”);/*栈为空显示相应的信息*/else{x=p-data[p-top];(p-top)--;/*栈顶位置下移*/}returnx;}2.出栈(Pop)出栈运算时,先将栈顶的元素值赋给某个变量,以备后面的运算应用;然后栈顶指针减1,将栈顶位置下移。假设已指定的变量为x,则出栈的函数如下:数据结构CC+循环链表共24页,您现在浏览的是第4页!

链堆栈的入栈算法在栈顶指针是top的链堆栈中插入一个值为x的结点的算法:voidpush(linklisttop,datatypex){linklists;s=newnode;/*建立一个结点指针*/s-data=x;s-next=top;top=s;}数据结构CC+循环链表共24页,您现在浏览的是第5页!

3.3循环链表与双向链表循环链表(circularlinkedlist)是一种首尾相接的链表,将单链表表尾结点原来的空指针改为指向表头结点,就成为循环链表。循环链表并不多占存储单元,但从循环链表的任一个结点出发都可以访问到此链表的每一个结点,因为当访问到表尾结点后又能返回到头结点。一、循环链表数据结构CC+循环链表共24页,您现在浏览的是第6页!

例3.2算法link(linklisthead1,head2){linklistp,q;p=head1;while(p-next!=head1)p=p-next;q=head2;while(q-next!=head2)q=q-next;p-next=head2;q-next=head1;}数据结构CC+循环链表共24页,您现在浏览的是第7页!

2.带尾指针的循环链表另一种方法是不设头指针而改设尾指针,这样无论是找头结点还是尾结点都很方便。因为尾结点由尾指针rear

文档评论(0)

. + 关注
官方认证
文档贡献者

专注于职业教育考试,学历提升。

版权声明书
用户编号:8032132030000054
认证主体社旗县清显文具店
IP属地宁夏
统一社会信用代码/组织机构代码
92411327MA45REK87Q

1亿VIP精品文档

相关文档