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

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

思想:
从一个空表开始,读取数组a中的元素,生成新节点。将读取在节点的数据域,然后将节点插入到当前链表的表头上,在头结点后,首结点之前。 直到结束为止

思路:
1.创建一个头结点 L 并将前驱指针和后继指针都置为零
2.通过for循环,将一个个元素读取,并保存数据域中,并插入到链表中。

总结:
这里有两个指针域,与单链表不同(只有一个指针域),所以这里要改动四处,前后各两个(单链表只改动两个)

C代码实现:

 void  CreateDListF(DLinkList *& L,int a[],int n){DLinkList * s; int i;L = (DLinkList *)malloc(sizeof(DLinkList));L->next = L->prior = null;  //将前后指针域置为空for(int i = 0; i < n; i++){s = (DLinkList *)malloc(sizeof(DLinkList));s->data = a[i];s->next = L->next;    //这两个为后继指针的if(L->next != null){L->next->prior = s;}L->next = s;     //这两个为前驱指针的s->prior = L;}}

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

  1. 不带头结点建立单链表(头插法、尾插法)

    #include<iostream> using namespace std; #include<stdlib.h> typedef int ElemType; typedef ...

  2. 建立双链表(尾插法)

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

  3. C语言实现单链表头插法

    //链表结构 //a是数据域 //node是指针域 //typedef是结构体简化语句 //node用于后面初始化空间的时候取结构体的占用空间大小 //listnode是整个链表的头指针指向,即指向链 ...

  4. 王道代码版单链表头插法,不带头的头插法,尾插法,不带头的尾插法的总结

    在编译器上面编译发现很容易控制台打印不出来,这可能就是细节所在,但是网上也没有很全的全代码输出的案例.我做题的感觉写的是对的其实并不对,你只是第六感感觉是对的仅此而已!!!要注意引以为戒,下面总结一下 ...

  5. C语言 链表 头插法

    代码(VS2017中运行) #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #incl ...

  6. 单向链表 头插法尾插法

    链表 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个结点里存到下一个结点的地址.链表在存储数据结构的内存中有两块区域.一块区域用来存 ...

  7. jdk1.7HashMap链表头插法导致的死循环

    jdk1.7的HashMap的源码分析参考我之前整理的HashMap,之前也有整理头插法导致的死循环,这里再整理一下.参考连接 扩容的核心源码如下: void transfer(Entry[] new ...

  8. 单链表头插法与尾插法的c语言实现(回顾)

    #include<stdio.h> #include<math.h> #include<stdlib.h> typedef struct node{int data ...

  9. c语言链表排序新增头指针法,C语言链表头插法,尾插法,排序

    题目描述 火车站要组装一列动车.每列车厢有车厢编号.座位数和座位等级.现在请你把它们组装起来,要求按照车厢号码升序排列,并输出每列车厢的信息.请使用链表来实现. 输入 输入有多组. 每组有多行.第一行 ...

最新文章

  1. 如何将程序添加到系统服务实现开机自启动
  2. 【Google Play】正式版上架流程 ( 创建版本 | 设置国家地区 | 发布正式版 )
  3. Yahoo! UI Library入门
  4. 服务器性能 平均磁盘写入,磁盘系统IO性能测试
  5. VS2013无法启动 IIS Express Web解决办法
  6. Spring boot mongodb
  7. Android特效专辑(十二)——仿支付宝咻一咻功能实现波纹扩散特效,精细小巧的View...
  8. 这可能是最适合C++学习者的书单
  9. “鸿蒙”系统的产生并不是为了手机?任正非透露实情...
  10. Java Web学习总结(44)—— RESTful 架构和 RESTful API 设计总结
  11. Node.js学习(第一章:Node.js安装方法及模块化理解)
  12. 黑马day11 脏读数据amp;解
  13. 专业设计服务器硬件主电路板工作室,电子设计教程: 电平转换电路
  14. 路由器怎么连接台式电脑
  15. Windows Identity Foundation-- Windows身份验证基本框架
  16. 【2022国赛模拟】摆(bigben)——行列式、杜教筛
  17. 真爱过的人,不会再有爱~
  18. 优秀新媒体文案的4种必备能力
  19. 张柏芝、谢霆锋、陈冠希近半年行踪关系图,这个图很厉害,可以作为思维导图的工具...
  20. Ubuntu移除PDF密码

热门文章

  1. 调用个别f5 负载端口为80的vs时,返回值为空的问题
  2. 机器学习处理流程、特征工程,模型设计实例
  3. 使用Identity Server 4建立Authorization Server (2)
  4. 我拷贝大文件的时候报“超过文件大小限制”错误,怎样突破这个限制?
  5. 【iOS10 SpeechRecognition】语音识别 现说现译的最佳实践
  6. 如何打印Qt中的枚举所对应的字符串
  7. LINUX下的21个特殊符号 转
  8. 线程池的介绍及简单实现
  9. Access快速连接SQL Server的方法(VB代码为例)
  10. JAVA中字符集详解