建立循环双链表(尾插法)
该方法是将节点插入在当前循环双链表的表尾上,为此增加一个尾指针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; //头结点指向尾节点
}
建立循环双链表(尾插法)相关推荐
- 建立循环双链表(头插法)
该方法从一个空表开始,读取数组a中元素,生成新节点,将读取的数据存在该节点的数据域中,然后将该新节点插入到当前节点的表头上,直到结束为止. 双链表的存储结构: typedef strcut DLink ...
- java实现单链表的建立(头插法和尾插法)
单链表 单链表(Single Linked List): 单链表是一种链式存取的数据结构,用一组地址任意(可能连续,也可能不连续)的存储单元存放线性表中的数据元素. 链表中的数据是以结点来表示的,每个 ...
- 数据结构之单链表尾插法创建-RearCreate
/* 单链表整表创建算法思路 1.声明一结点p和计数器变量i 2.初始化一空链表L 3.让L的头结点的指针指向NULL,即建立一个带头结点的单链表 4.循环: 生成一新结点赋值给p 随机生成一数字赋值 ...
- 单链表 尾插法 C语言
注意用malloc开辟空间用的是node*,而其对应的访问也是用"->" #include<iostream> #include<cstdio> #i ...
- 建立循环单链表(头插法)
循环链表的操作实现算法与非循环链表的操作算法基本相同,只是对表尾的判断做了改变. 定义单链表的存储结构: typedef struct LinkList{int data;LinkList * nex ...
- 单链表-两个线性表的合并(不破坏原链表+尾插法)
题意: 令L1 = (X1,X2,X3,X4-Xn), L2 = (y1,y2,y3,y4-ym);是两个线性表.采用带头节点的链表存储,设计一个算法合并L1,L2,结果放在线性表L3中,要求如下: ...
- 单链表-两个线性表的合并1(破环原链表+尾插法)
题意: 令L1 = (X1,X2,X3,X4-Xn), L2 = (y1,y2,y3,y4-ym);是两个线性表.采用带头节点的链表存储,设计一个算法合并L1,L2,结果放在线性表L3中,要求如下: ...
- 尾插法,前插法 建立单链表
目录 尾插法正向建立单链表 前插法逆向建立单链表 首先定义一个一个单链表 typedef struct LNode{int data; //数据域 struct LNode *next; //指针域 ...
- 采用头插法和尾插法建立单链表
面说一下如果用C语言建立单链表,分为头插法和尾插法两种. 采用头插法建立单链表 该方法从一个空表开始,生成新结点,并将读取到的数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头,即头结点之后 ...
最新文章
- centos 如何登陆mysql_[CentOS 0010] CentOS 配置mysql允许远程登录
- python画动态爱心-使用Python画出小人发射爱心的代码
- 第九章:路由网关(Zuul)的使用
- QT绘图控件QWT的安装及配置
- 一文搞定 Docker 容器技术与常用命令
- JS对文本框输入字符的限制
- Openfire3.9.3源代码导入eclipse中开发配置指南(转载)
- pcl里面的点特征直方图(PFH)
- 正则表达式去除连续重复的字符
- 多伦多大学计算机专音乐专业,多伦多大学音乐专业有哪些申请要求?
- Rust: codewars 的Duplicate Encoder
- Delete `␍`eslintprettier/prettier
- MTK 6589充电模块分析
- 禁止谷歌浏览器 错误报告_报告浏览器错误
- Qt应用程序嵌入浏览器的常用方法
- 高德地图api汇总(二)插件的使用
- c#精华网站收集(转摘自梅川酷子的博客)
- 陈满雪冤背后英雄:上百名同学捐款数十万元
- 关于支付(支付宝和微信)
- Axon Framework 学习
热门文章
- java连接pda_程序文件直接拷贝到pda设备 (USB连接pc pda wince6.0 C#)
- 边缘计算将取代云计算?云计算前景与网络前景
- 从0到1,了解NLP中的文本相似度
- python-切片实例
- 经济参考报:想哭病毒为中国网络安全敲警钟
- ASP.NET Core开发之HttpContext
- 《Python数据科学指南》——1.17 使用映射函数
- 单身程序猿适合找单身程序媛吗?
- ionic中使用Cordova Uglify 压缩js与css
- Open Sans字体兼容问题解决办法[font-face]