建立单链表有两种方法,
这里采用头插法。

尾插法含义:
该方法是从一个空表开始,读取数组的元素,生成新节点,将读取的数据放到存放在新节点的数据域中,然后将该节点插入到链表的表头上,直到结束为止。
由于:头插法会让顺序与数组原顺序相反,所以这里要定义一个尾指针r 才可让顺序不变。

思路:(尾插法)
1.先建立一个头结点,r始终指向尾结点,开始时指向头结点
2.通过循环读取数组的元素,生成新节点
其中,第一,数据域赋值 第二,指针域更换
意思为:将新生成的结点插入头结点后
需要定义: 一个指针s指向新生成的结点,一个指针r指向尾结点。定义循环变量i
3,最后将尾结点置为空 r->next = null;

C代码实现:

void  CreateListF(Linklist * L,int a[], int n){Linklist * s,*r;  int i;L = (Linklist)malloc(sizeof(Linklist)); //建立头结点r = L;   //r始终指向尾结点,开始时指向头结点for(int i = 0; i < n; i++){s = (Linklist)malloc(sizeof(Linklist));s->data = a[i];r->next = s;r = s;}r->next = null; //尾结点置为空
}

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

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

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

  2. 单链表 尾插法 C语言

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

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

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

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

    建立单链表有两种方法, 这里采用头插法. 头插法含义: 该方法是从一个空表开始,读取数组的元素,生成新节点,将读取的数据放到存放在新节点的数据域中,然后将该节点插入到链表的表头上,直到结束为止. 注意 ...

  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

    #include<iostream> using namespace std; //前插法创建一个单链表 //1.初始化(课本代码) //单链表存储结构 typedef struct LN ...

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

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

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

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

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

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

最新文章

  1. 第k大的数python代码_【Python】【输出前m大的数】
  2. [原创]关于在VS2008和VS2010中禁用及卸载Visual Assist X的方法研究
  3. bilibili有电脑版吗_电脑版和平精英你期待吗?可惜国内并未上线
  4. 01-spring配置详解
  5. Android中的Touch事件处理流程
  6. SQL server 复习一
  7. led显示屏控制卡接线图解_Led显示屏出现花屏是什么原因
  8. 刚刚教育部发声:老师性骚扰学生 零容忍!“害群之马”将被严惩
  9. Log4j文件配置教程大全
  10. 常用标记语言及其工具
  11. 《Android进阶之光》— Android 书籍
  12. 10个小技巧:快速用Python进行数据分析
  13. 教师使用计算机的能力提升,计算机专业教师教学能力提升途径
  14. 霍金实在论中的实践论
  15. 触摸屏键盘插件Virtual Keyboard 该怎么用 Virtual Keyboard 入门指南
  16. 科学家发现4起黑洞相撞事件,其中最大的一起或为“双重”碰撞...
  17. 细侃那些悬而未决的数学趣味谜题
  18. 拆解任天堂教科书般的界面动效设计
  19. 企业经营数据的质量及其八个指标
  20. Python数据爬取之中国人口数据【附整理好的分省数据下载链接】

热门文章

  1. java 父线程_Java父线程(或是主线程)等待所有子线程退出的实例
  2. jdbc mysql连接测试_JDBC测试计划-连接mysql
  3. mac 不显示 外接屏幕_Mac移动硬盘热拔(直接拔掉)后,再插上不显示移动硬盘解决办法...
  4. (十二) 完整注释的代码摘录
  5. 减少HQL 的MAP数
  6. Redis的多种启动方式比较!
  7. left join on 和where条件的放置
  8. ajax对服务器路径请求
  9. data lab 1(暂时只放题目)
  10. 欢迎加入网络管理论坛群