题目

试设计一个算法,改造一个带表头结点的双向链表,所有结点的原有次序保持在各个结点的右链域rLink中,并利用左链域ILink把所有结点按照其值从小到大的顺序连接起来

分析

Template <Type> void DblList<Type>::sort() {DblNode <Type> *pre, *ppre; // pre用于记录p的前驱DblNode <Type> *s = first->rLink;   // s指向待插入结点,初始时指向第一个结点first->lLink->lLink = first;        // 确保新链表的左链的最后一个元素指向头结点while (s != first) {  // 利用右链在原链表中遍历 (书上为s != NULL)pre = s;      // pre从s开始往左走ppre = pre->lLink; // ppre指向pre的左前驱while (ppre != first && s->data < ppre->data) {//类似于插入排序,在已经形成的左链中,找到外循环遍历中的结点s应该插入的位置,即pre之后、p之前 (书上为s != NULL)pre = ppre; // 小弟踩着大哥的脚印ppre = ppre->lLink; // 大哥先左走一步}pre->lLink = s;     // 插入过程s->lLink = ppre;    // 插入过程s = s->rLink;// 将s插入到左链的适当位置之后,s叠代}
}

附:标准答案

题源:《数据结构习题解析》殷人昆

数据结构:试设计一个算法,改造一个带表头结点的双向链表,所有结点的原有次序保持在各个结点的右链域rLink中,并利用左链域ILink把所有结点按照其值从小到大的顺序连接起来相关推荐

  1. 回文指的是一个字符串从前面读和从后面读都一样,编写一个算法判断一个字符串是否为回文。

    回文指的是一个字符串从前面读和从后面读都一样,编写一个算法判断一个字符串是否为回文. 要求: 1)采用链栈实现算法: 2)从键盘输入一个字符串,输出判断结果. 算法思路: 根据栈的后进先出的特点,编写 ...

  2. excel函数去重_将数字去重,然后按从小到大的顺序连接起来!

    你好,我是刘卓.欢迎来到我的公号,excel函数解析.今天来分享一个案例--对数字去重,排序,连接.-01-下图A1:I7是数据源,都是0-9之间的数字.现在的要求是将每行的数字去重,然后按从小到大的 ...

  3. c语言判断字符是否对称,2020-07-23(C语言)数据结构-试设计算法判断该链表的全部n个字符是否中心对称。...

    //设单链表的表头指针为L,结点结构由data和next两个域构成,其中data域为字符型.试设计算法判断该链表的全部n个字符是否中心对称.例如xyx,xyyx都是中心对称. include incl ...

  4. 山东大学软件学院大二下数据结构课程设计---排序算法的性能分析

    文章目录 一.题目 二.界面图 主界面 比较和移动次数饼图 比较不同表长的对话框 验证稳定性的对话框 课设录屏 三.题目分析 四.基本思路 五.项目结构 1.开发环境 2.结构介绍 3.关键点及难点 ...

  5. 以行为单位对字符串变量下标为奇数位置上的字符按其ASCii值从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中

    #include <stdio.h> #include <string.h> #include <windows.h> #include <conio.h&g ...

  6. 数组分成两组差值最小 python_数组中的数分为两组,让给出一个算法,使得两个组的和的差的绝对值最小,数组中的数的取值范围是0x100,元素个数也是大于0, 小于100 。...

    比如a[]={2,4,5,6,7},得出的两组数{2,4,6}和{5,7},abs(sum(a1)-sum(a2))=0: 比如{2,5,6,10},abs(sum(2,10)-sum(5,6))=1 ...

  7. 数据结构 课程设计报告

    <数据结构课程设计> 课程题目 电话客服模拟系统 课程编号 j1620102 学生姓名 严乾聪 学生学号 201311671424 所在专业 信息管理与信息系统 所在班级 信管1134班 ...

  8. 数据结构课程设计——机票售卖系统(C++)

    引言 这学期最后的数据结构课程设计需要我们完成一个简单的小程序,我选择了一个机票售卖系统,实现了一些基本的功能:因为时间给的比较短,又赶在复习周补课,所以并没有什么突出的地方,我就在这里聊聊我的代码实 ...

  9. 看到一个描述性弹性域窗口怎么去找此弹性域段的定义

    有同事在问看到一个描述性弹性域(DFF,Descriptive Flexfield)窗口怎么去找此弹性域段的定义. 如下图的描述性弹性域窗口,他在DFF段中的标题是什么,不知道要搜索啥.其实很简单,弹 ...

最新文章

  1. object-c中管理文件和目录:NSFileManager使用方法
  2. python写电商网站框架,python-django框架-电商项目-商品模块开发_20191124
  3. go语言切片切片与指针
  4. Enterprise Solution 2.2 Feature List
  5. k8s之pod管理(控制器)
  6. AI:IPPR的数学表示-CNN稀疏结构进化(Mobile、xception、Shuffle、SE、Dilated、Deformable)
  7. 华北电力大学的计算机类专业排名,2018年华北电力大学王牌专业排行榜,考生和家长们都好好看看!...
  8. 消息队列之推还是拉,RocketMQ 和 Kafka是如何做的?
  9. 判断一棵树是否是一颗完全二叉树☆
  10. Asp.Net Core 轻松学-利用日志监视进行服务遥测
  11. 几个常用的python脚本_几个很实用的python脚本
  12. 对java类中注释的认识
  13. 一步步学习SPD2010--附录B--创建新的批准流程
  14. CIA:要破解最新iPhone/iOS我们也没辙
  15. Web前端-课程设计-网易严选
  16. 利用matlab实现h 控制,利用matlab实现H-infinity鲁棒控制
  17. Python爬虫 之 破解 cookie 代理 验证码 实战
  18. [经验教程]百度Robots检测:您的服务器配置有误,百度暂时无法连接您的服务器,请检查服务器的设置,确保您网站的服务器能被正常访问。
  19. ajax dojo deferred,Dojo学习-14:Ajax with dojo/request
  20. 三星s8 android版本,三星S8有几个版本?三星S8和三星S8+(plus)各个版本详细区别对比评测...

热门文章

  1. HihoCoder - 1465 后缀自动机五·重复旋律8(后缀自动机)
  2. HDU - 6194 string string string(后缀数组+RMQ+容斥)
  3. qduoj - 小Z的集训队考验(拓扑排序+动态规划)
  4. 中石油训练赛 - The King’s Ups and Downs(记忆化搜索)
  5. python读数据库的通信协议是,Python操作SQLite数据库过程解析
  6. antd 设置表头属性_解决react使用antd table组件固定表头后,表头和表体列不对齐以及配置fixed固定左右侧后行高度不对齐...
  7. OpenCV源码安装教程(兼容CUDA)
  8. XgBoost使用及调参教程
  9. Python实战-获取鼠标键盘事件
  10. Lua 协同程序(coroutine)