双链表存储结构:
要建立双链表,首先要明白双链表的存储结构定义:

typedef struct DLinkList{   //存储结构定义int data;DLinkList * prior;DLinkList * next;}

思想:
该方法是将新节点插入双链表的表尾,为此增加一个尾指针r.使其始终指向当前链表的尾结点

思路:
1.建立头结点L,定义一个尾指针r, 并同时将r指向L。
2.通过for循环将数组元素一个个插入到链表表尾。
指针域复制,指针域修改
3.最后那个节点要置空、

总结:
1.无论是单链表还是双链表,用尾插法时,最后一个节点都要置为空。
2.头插法是和数组逆序的, 而尾插法是和数组顺序的

C代码实现:

void  CreateDListF(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 = null;}

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

  1. 单链表建立——头插法和尾插法

    引言 当我们准备采用单链表形式实现线性表,第一步就是要建立单链表,即初始化.由于链表是一个动态结构,不需要预先分配空间,因此生成链表的过程就是"逐个插入"的过程,插入结点的位置可以 ...

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

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

  3. 单链表 尾插法 C语言

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

  4. 建立双链表(头插法)

    双链表存储结构: 要建立双链表,首先要明白双链表的存储结构定义: typedef struct DLinkList{ //存储结构定义int data;DLinkList * prior;DLinkL ...

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

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

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

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

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

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

  8. 单链表的建立(C语言):头插法和尾插法建立单链表

    采用头插法建立单链表 该方法从一个空表开始,生成新结点,并将读取到的数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头,即头结点之后,如图2-4所示. 图2-4  头插法建立单链表 头插法建 ...

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

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

  10. 数据结构__头插法建立单链表、尾插法建立单链表

    单链表定义.头插法建表.尾插法建表 一.单链表的定义   单链表是线性表的链式存储,是指通过一组任意的存储单元来存储线性表中的数据元素. 单链表结构定义为: 其中data为数据域,用来存放数据:nex ...

最新文章

  1. PowerBuilder 11.x 的重要进步和不足
  2. Smarty变量调节器的使用
  3. python多元回归预测例子_Python机器学习,多元线性回归分析问题
  4. CentOS7 install google-chrome-stable
  5. 这就是搜索引擎:核心技术详解
  6. 微软 azure_在Microsoft Azure上运行Eclipse MicroProfile
  7. Undefined control sequence. \makecover
  8. Python编码风格指南
  9. 经常用到的一些小病的预防的治疗
  10. TCL语言笔记:TCL过程控制练习
  11. 电子设计竞赛控制组——完整旋转倒立摆程序
  12. 【ANSYS命令流】定义单元类型与实常数
  13. 计算机运行慢 卡是什么原因是什么原因,电脑反应慢是怎么回事?五招让你的电脑快得飞起!...
  14. MIT线性代数笔记二十八讲 相似矩阵和若尔当标准型
  15. timeline java_Java Timeline.stop方法代码示例
  16. Oracle EBS 键弹性域 段限定词取值
  17. 计算机打文档的技巧,电脑word文档下划线怎么打(word文档编辑小技巧)
  18. STN向城域云网演进浅析
  19. 家庭玩游戏配置哪种计算机,玩游戏用什么系统?Win10专业版和Win10家庭版玩游戏的区别...
  20. 关于RTC(实时时钟)

热门文章

  1. 时序数据库连载系列: 时序数据库一哥InfluxDB之存储机制解析
  2. Samba如何配置共享资源
  3. Java并发同步器AQS
  4. zabbix使用zabbix 数据库做数据分表
  5. FPGA设计——全局曝光CMOS图像采集与USB2.0显示
  6. Lotgstash日志切割示例
  7. 【转】无法将notepad++添加到打开方式列表中的解决办法
  8. Timer 和TimerTask 的定时任务入门
  9. 6月.CN域名注册量突破1200万个 增速环比加快
  10. shiro源码分析(四)具体的Realm