数据链表:双向循环链表交换结点
要求:已知p指向双向循环链表中的一个结点,其结点结构为data、prior、next三个域,写出算法change§,交换p所指向的结点和它的前缀结点的顺序。
[题目分析]
知道双向循环链表中的一个结点,与前驱交换涉及到四个结点(p结点,前驱结点,前驱的前驱结点,后继结点)六条链。
算法描述:
void change(LinkedList p)
{//p是双向循环链表中的一个结点,将p所指结点与其前驱结点交换q = p->pre;q->pre->next = p; ∥p的前驱的前驱之后继为pp = ->pre = q->pre; ∥p的前驱指向其前驱的前驱。q->next = p->next; ∥p的前驱的后继为p的后继。q->pre = p; ∥p与其前驱交换p->next->pre = q; ∥p的后继的前驱指向原p的前驱p->next = q; ∥p的后继指向其原来的前驱
}
数据链表:双向循环链表交换结点相关推荐
- 双向循环链表中结点的交换(C++)
描述 利用双向循环链表表示一个整数序列,指定一个结点位置用p指向该结点,交换p所指向的结点及其前驱结点的顺序. 输入 多组数据,每组数据有三行,第一行为链表的长度n,第二行为链表的n个元素(元素之间用 ...
- 链表 -- 双向循环链表(线性表)
1,双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱.所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点.一般我们都构造双向循环 ...
- java循环单链表类构造函数_C++实现双向循环链表
本文实例为大家分享了C++实现双向循环链表的具体代码,供大家参考,具体内容如下 一.概念 1.在双链表中的每个结点应有两个链接指针: lLink -> 指向前驱结点 (前驱指针或者左链指针) ...
- 数据结构——带头结点双向循环链表
相比较与单链表,双向循环链表每个结点多了一个prev指针域,用于指向该结点的前驱,并且链表的头尾结点也用指针域相连.所以对于带头结点的双向循环链表的判空条件为head->next=head;除此 ...
- (C++版)链表(四)——实现双向循环链表创建、插入、删除等简单操作
http://blog.csdn.net/fisherwan/article/details/25649271 链表(四)实现双向循环链表简单操作,代码如下: [cpp] view plain cop ...
- 数据结构基础(12) --双向循环链表的设计与实现
双向链表的操作特点: (1) "查询" 和单链表相同; (2)"插入" 和"删除"时需要同时修改两个方向上的指针. 但是对于双向循环链表则在 ...
- 双向循环链表:始终保持被频繁访问的结点总是靠近表头结点
双向循环链表:始终保持被频繁访问的结点总是靠近表头结点 -数据结构题目 题目:设有一个双向循环链表,每个结点中除有prior,data和next三个域外,还增设了一个访问频度域freq.在链表被起用之 ...
- 数据结构与算法(2-2)线性表之链式存储(单链表、静态链表、循环链表、双向循环链表)
目录 一.单链表 1.存储方式 2.插入 3.删除 总代码: 二.静态链表 1.存储方式 2.插入 3.删除 4.遍历 总代码: 三.循环链表 总代码: 四.双向循环链表 1.存储方式: 2.插入和删 ...
- 数据结构-单向循环链表、双向循环链表、仿真链表
一.单向循环链表: 1.概念: 单向循环链表是单链表的另一种形式,其结构特点是链表中最后一个结点的指针不再是结束标记,而是指向整个链表的第一个结点,从而使单链表形成一个环. 和单链表相比,循环单链表的 ...
最新文章
- Ubuntu14.04 + Text-Detection-with-FRCN(CPU)
- hibernate连接池配置
- 二十四、创建Node项目,深入Nodejs
- HDLBits答案(11)_Verilog计数器
- 分库分表的事务处理机制
- 文件管理系统源码_基于Spring Cloud微服务构建多平台功能完善小说弹幕网站源码分享...
- java作业 计算平均分和总成绩
- Protobuf 的 import 功能在 Go 项目中的实践
- java settitle 源码_在其他初始化方法中折叠工具栏的setTitle - java代码 - 源码查
- Linux下部署Spring Boot项目
- GotoAndPlay 图论
- jquery 控制frameset frame节点内容(在子窗口中把该窗口中的焦点处的text内容填
- DNS解析错误解决办法
- rake matlab,基于MATLAB的Rake接收机仿真及性能分析
- 计算机中学期末考试,[探析我国中学计算机教育]计算机基础大一考试题
- macOS安装wget
- [GIS教程] 5.2 空间数据管理 | SDE空间数据引擎
- 苹果iOS 8.0正式发布啦
- 微信公众号Python开发(Wechatpy+新浪云SAE应用)
- ByVal和ByRef区别