有一个带头结点的双链表L设计一个算法让其所有元素逆置,即第一个元素变成最后元素,第二个元素变成倒数第二个元素

typedef struct DNode
{ElemType data;struct DNode *prior;struct DNode *next;
} Dlinknode;
void conversion(Dlinknode *&L)
{Dlinknode *p=L->next,*q;L->next=NULL;//仍然使用这个头结点,但是了另外创建了一条线while(p!=NULL){q=p->next;p->next=L->next;if(L->next!=NULL)L->next->prior=p;p->prior=L;p=q;}
}

//有一个带头结点的双链表L,设计一个算法使元素递增有序排列

void Sort(Dlinknode *&L)
{Dlinknode *p,*q,*pre;p=L->next->next;//p指向第二个节点L->next->next=NULL;//构造只含有一个头结点的链表while(p!=NULL){q=p->next;//标记q;pre=L;while(p->data>pre->next->data&&pre->next!=NULL)pre=pre->next;//寻找合适的插入位置//找到了合适的插入位置p->next=pre->next;if(pre->next!=NULL)pre->next->prior=p;pre->next=p;p->prior=pre;//这就是为什么不能要pre=L->next 那样会找不到pre的前驱//进行下一次循环p=q;}
}

//判断带头结点的循环双链表L(含两个以上结点)中的数据结点是否对称

bool equal(Dlinknode *L)
{bool same=true;//初始化为true; Dlinknode *p=L->next;//首节点Dlinknode *q=L->prior;//尾结点while(same){if(p->data!=q->data)same=false;if(p==q||p=q->prior)//偶数or奇数break;else{p=p->prior;q=q->next;}return same;}}

有一个带头结点的循环单链表L,设计一个算法统计其data值域为x的节点个数

int Count(linknode *L,int x,int &i)
{linknode *p=L->next;i=0;while(p!=L){if(p->data==x)i++;p=p->next;}return i;
}

有一个带头结点的循环双链表L,设计一个算法删除第一个data域值为x的节点

bool Count(linknode *L,ElemType x)
{linknode *p=L->next;while(p!=L&&p->data!=x)p=p->next;//循环化寻找if(p!=L)//是找到了而不是循环结束{p->next=prior=p->prior;p->prior->next=p->next;free(p);return true;}else return false;}

数据结构(双链表/循环链表例题 )相关推荐

  1. 数据结构-双链表基本操作(C语言实现)

    参考书:王道考研数据结构 (此贴为博主学习408的笔记,因博主也是学习者,个人总结如有错误欢迎指正.如有侵权请告知,马上删除致歉)​​ 一:双链表含义 双链表是在单链表的基础上增加了一个指向前驱结点的 ...

  2. 数据结构--双链表的创建和操作

    http://www.cnblogs.com/jingliming/p/4602144.html#0-tsina-1-42616-397232819ff9a47a7b7e80a40613cfe1 一. ...

  3. C#数据结构-双链表

    据说单链表没有回路,那么双链表也出现了,既包括后继指针,又加入了前驱指针,某个元素可以寻找他上面一个元素,也可以寻找到下一个元素.当然双链表也是链表的一种. 物理存储结构:不一定是连续的存储区域 逻辑 ...

  4. c# 数据结构 ---双链表

    再来个双链表,其实和单链表差不多拉,循环链表也是,只是把尾元素指向Header就OK了.所以就不贴循环链表了.   1 /**//// <summary>   2    /// 双链表的节 ...

  5. 算法基础—数据结构—双链表

    双链表顾名思义就是一个从左到右的指针和一个从右到左的指针. 这里列一些模板 // e[]表示节点的值,l[]表示节点的左指针,r[]表示节点的右指针,idx表示当前用到了哪个节点 int e[N], ...

  6. 数据结构——双链表(C语言详述通用双链表)

    说明:   本文章旨在总结备份.方便以后查询,由于是个人总结,如有不对,欢迎指正:另外,内容大部分来自网络.书籍.和各类手册,如若侵权请告知,马上删帖致歉.   QQ 群 号:513683159 [相 ...

  7. 数据结构 - 双链表的头插法和后插法

    1.单链表的局限性 -> 单链表是对数组的一个扩展,解决了数组的大小比较死板不容易扩展的问题.使用堆内存来存储数据,将数据分散到各个节点之间,其各个节点在内存中可以不相连,节点之间通过指针进行单 ...

  8. 天勤考研数据结构———双链表操作

    定义双链表的结构体类型 typedef struct DLNode{     int data;     struct DLNode *next;     struct DLNode *prior; ...

  9. 数据结构之线性表----一文看懂顺序表、单链表、双链表、循环链表

    ​ 线性表是数据结构中比较基础的内容,不过也是入门的所需要客服的第一个难关.因为从这里开始,就需要我们动手编程,这就对很多同学的动手能力提出了挑战.不过这些都是我们需要克服的阵痛,学习新的知识总是痛苦 ...

最新文章

  1. 用链表生成前序二叉树
  2. 2016-11-15试题解题报告
  3. 一些实用的Javascript代码
  4. 幕课网产品总监:教你从0到1打造600W下载量的爆款APP
  5. 深度洞见|起底元宇宙风潮,如何重塑未来数字营销?
  6. python(matplotlib7)——subplot 一个figure中国显示几个小图 分格显示
  7. Tomcat启动问题,启动是Tomcat8,结果却是Tomcat9
  8. [ARC073C] Ball Coloring(贪心)
  9. js进阶 12-5 jquery中表单事件如何使用
  10. 30款顶级CSS工具及应用-CSDN.NET
  11. 解密普元大文件传输核心技术
  12. leach协议的能量检测仿真
  13. st计算机编程语言,SoMAChineST编程语言介绍.pdf
  14. 为什么使用LINUX(有点长,没耐心别看)大家自己体会
  15. Unity3D高级编程之进阶主程-陆泽西 (Jesse Lu)
  16. 人工智能,机器学习,深度学习(笔记)
  17. 「机密计算-隐私计算」科普
  18. 开学季,中学生用什么样护眼台灯好?中学生用护眼台灯排行
  19. 白名单模板_solidworks打开stp显示默认模板无效?如何解决!
  20. 用树莓派做MIDI HOST,给合成器外接MIDI键盘

热门文章

  1. 重装系统重新分区方法教程
  2. ftp连接时 不是私密连接_远程治疗似乎不那么私密时
  3. 将10位或13位时间戳转换为日期+时间--yyyy-MM-dd HH:mm:ss
  4. 走近测试:对于软件测试的十大常见误解
  5. 如何招聘程序员-梁山好汉式or科举考试型
  6. 在线搭建Ganglia
  7. 这些设置 就是导致你的IDEA卡爆的原因!
  8. c语言8155与单片机,MCS_51单片机与8155H的接口设计
  9. Christine Everhart
  10. SPI总线传输的模式