该方法是将节点插入在当前循环双链表的表尾上,为此增加一个尾指针r ,并始终指向当前链表的尾节点,最后让r->next 指向头结点。头结点的prior 指向尾节点。

注意:这里头结点,尾节点 要相互指向 才是循环双链表

双链表的存储结构:

 typedef strcut DLinkList{int data;DLinkList *next;DLinkList *prior;}

思路;
1.创建头结点,并定义一个尾指针r ,始终指向尾结点,开始时是指向头结点。
2.通过for,生成新节点。然后插入表尾
3.最后,尾节点和头结点相连(没有这步如何使循环双链表)

总结:尾节点指向头结点,头结点指向尾节点

C代码实现:

 void CreateCDListF(DLinkList *& L,int a[],int n){DLinkList  * s,*r; int i;L = (DLinkList *)malloc(sizeof(DLinkList));r = L; //注意,这里是区别之处for(int i = 0; i < n; i++){s = (DLinkList *)malloc(sizeof(DLinkList));s->data = a[i];r->next = s;s->prior = r;  //因为是双指针域,所有有两处修改r = s;}r->next = L;  //尾节点指向头结点L->next = r;  //头结点指向尾节点
}

建立循环双链表(尾插法)相关推荐

  1. 建立循环双链表(头插法)

    该方法从一个空表开始,读取数组a中元素,生成新节点,将读取的数据存在该节点的数据域中,然后将该新节点插入到当前节点的表头上,直到结束为止. 双链表的存储结构: typedef strcut DLink ...

  2. java实现单链表的建立(头插法和尾插法)

    单链表 单链表(Single Linked List): 单链表是一种链式存取的数据结构,用一组地址任意(可能连续,也可能不连续)的存储单元存放线性表中的数据元素. 链表中的数据是以结点来表示的,每个 ...

  3. 数据结构之单链表尾插法创建-RearCreate

    /* 单链表整表创建算法思路 1.声明一结点p和计数器变量i 2.初始化一空链表L 3.让L的头结点的指针指向NULL,即建立一个带头结点的单链表 4.循环: 生成一新结点赋值给p 随机生成一数字赋值 ...

  4. 单链表 尾插法 C语言

    注意用malloc开辟空间用的是node*,而其对应的访问也是用"->" #include<iostream> #include<cstdio> #i ...

  5. 建立循环单链表(头插法)

    循环链表的操作实现算法与非循环链表的操作算法基本相同,只是对表尾的判断做了改变. 定义单链表的存储结构: typedef struct LinkList{int data;LinkList * nex ...

  6. 单链表-两个线性表的合并(不破坏原链表+尾插法)

    题意: 令L1 = (X1,X2,X3,X4-Xn), L2 = (y1,y2,y3,y4-ym);是两个线性表.采用带头节点的链表存储,设计一个算法合并L1,L2,结果放在线性表L3中,要求如下: ...

  7. 单链表-两个线性表的合并1(破环原链表+尾插法)

    题意: 令L1 = (X1,X2,X3,X4-Xn), L2 = (y1,y2,y3,y4-ym);是两个线性表.采用带头节点的链表存储,设计一个算法合并L1,L2,结果放在线性表L3中,要求如下: ...

  8. 尾插法,前插法 建立单链表

    目录 尾插法正向建立单链表 前插法逆向建立单链表 首先定义一个一个单链表 typedef struct LNode{int data; //数据域 struct LNode *next; //指针域 ...

  9. 采用头插法和尾插法建立单链表

    面说一下如果用C语言建立单链表,分为头插法和尾插法两种. 采用头插法建立单链表 该方法从一个空表开始,生成新结点,并将读取到的数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头,即头结点之后 ...

最新文章

  1. centos 如何登陆mysql_[CentOS 0010] CentOS 配置mysql允许远程登录
  2. python画动态爱心-使用Python画出小人发射爱心的代码
  3. 第九章:路由网关(Zuul)的使用
  4. QT绘图控件QWT的安装及配置
  5. 一文搞定 Docker 容器技术与常用命令
  6. JS对文本框输入字符的限制
  7. Openfire3.9.3源代码导入eclipse中开发配置指南(转载)
  8. pcl里面的点特征直方图(PFH)
  9. 正则表达式去除连续重复的字符
  10. 多伦多大学计算机专音乐专业,多伦多大学音乐专业有哪些申请要求?
  11. Rust: codewars 的Duplicate Encoder
  12. Delete `␍`eslintprettier/prettier
  13. MTK 6589充电模块分析
  14. 禁止谷歌浏览器 错误报告_报告浏览器错误
  15. Qt应用程序嵌入浏览器的常用方法
  16. 高德地图api汇总(二)插件的使用
  17. c#精华网站收集(转摘自梅川酷子的博客)
  18. 陈满雪冤背后英雄:上百名同学捐款数十万元
  19. 关于支付(支付宝和微信)
  20. Axon Framework 学习

热门文章

  1. java连接pda_程序文件直接拷贝到pda设备 (USB连接pc pda wince6.0 C#)
  2. 边缘计算将取代云计算?云计算前景与网络前景
  3. 从0到1,了解NLP中的文本相似度
  4. python-切片实例
  5. 经济参考报:想哭病毒为中国网络安全敲警钟
  6. ASP.NET Core开发之HttpContext
  7. 《Python数据科学指南》——1.17 使用映射函数
  8. 单身程序猿适合找单身程序媛吗?
  9. ionic中使用Cordova Uglify 压缩js与css
  10. Open Sans字体兼容问题解决办法[font-face]