- 3
- 0
- 约1.79万字
- 约 54页
- 2017-06-24 发布于湖北
- 举报
循环链表上的运算与单链表上的运算基本一致,区别只在于最后一个结点的判断(即循环的条件不同),但利用循环链表实现某些运算较单链表方便(从某个结点出发能求出它的直接前驱,而单链表是不行的,只能从头出发)。 【例2-3】在如下图所示的单循环链表中,求P的直接前驱(从P出发,而不从head出发),算法如下: link *link::prior(link *head , link *p) { link *q; q=p-next; while(q-next!=p) q=q-next; return q; } 显然该算法的时间复杂度为O(n)。 既然是循环链表, head指针就可以指向任意结点,若将head指向末尾,有时的操作会比head指向开头的操作更方便,下面将举例说明。 【例2-4】将两个链表合并成一个链表(第一个表的尾接第二个表的头),要求用head指向头和head指向尾两种循环链表实现,分别如下图一和图二所示。 图一 图二 对第一种合并算法,可以分三步走: 第一步,先找到head1中最后一个结点an ,语句描述为: p=head1-next; while(p-next!=head1) p=p-next; 第二步,找到head2中最后一个结点bm ,语句描述为: q=head2-next; while(q-next!=head2) q=q-next; 第三步,合并,
您可能关注的文档
最近下载
- 灌溉设施检修与维护管理方案.docx
- 中国水电四局-财务共享中心业务操作手册(第三版)-基础数据分册.docx
- 2023年河南农业大学计算机应用技术专业《计算机组成原理》科目期末试卷A(有答案).docx VIP
- 孕酮预防自发性早产的专家共识解读PPT课件.pptx VIP
- 水工建筑物溢洪道(第七章).ppt VIP
- [计算机二级c语言真题]计算机二级c语言试题及答案.docx VIP
- 基于STM32的GPS轨迹记录系统设计.docx VIP
- 教育测量与评价第三版全套完整教学课件.pptx VIP
- GB50334-2017 城镇污水处理厂工程质量验收规范.docx VIP
- 2026年体彩代销者考核全模块核心考点练习题集含答案.docx VIP
原创力文档

文档评论(0)