C语言头插法尾插法创建单链表
前言
链表 [Linked List]:链表是由一组不必相连【不必相连:可以连续也可以不连续】的内存结构 【节点】,按特定的顺序链接在一起的抽象数据类型。
下面介绍单链表的创建:
创建节点
链表是由一个个节点构成的,首先我们就要创建节点
首先用结构体创建节点Node
typedef struct Node
{int data; //数据域struct Node* next; //指针域
}LNode, * Linklist; //LNode为节点,Linklist为zhiz
头插法创建单链表
Linklist CreateFromHead() //头插法创建单链表
{Linklist L; //定义头指针LLNode *s; //定义节点的指针sint x; //定义要输入的数据L = (Linklist)malloc(sizeof(Linklist));//为头指针开辟内存空间L->next = NULL; //将头指针的next初始化为空//输入数据printf("请输入一个整型数:");scanf("%d", &x);//用循环继续添加数据,当输入为-1时输入完成while (x != -1){s = (LNode*)malloc(sizeof(Linklist));//为新数据开辟内存空间s->data = x; //将数据存入到节点的data中s->next = L->next; //将新数据的next赋值为头节点的nextL->next = s; //将头节点指向新数据//继续输入新的数据printf("请输入一个整型数:");scanf("%d", &x);}return L; //返回头节点
}
尾插法创建单链表
Linklist CreateFromTail() //尾插法创建单链表
{Linklist L; //定义头指针LLNode *r,*s; //定义节点的指针r和s,s指向新开辟的数据,r指向尾节点int x; //定义要输入的数据L = (LNode*)malloc(sizeof(LNode));//为头指针开辟内存空间L->next=NULL; //将头指针的next初始化为空r=L; //将尾指针指向头指针L//输入数据printf("请输入一个整型数:");scanf("%d", &x);//用循环继续添加数据,当输入为-1时输入完成while (x != -1){s = (LNode*)malloc(sizeof(LNode));//为新数据开辟内存空间s->data = x; //将数据存入到节点的data中s->next = r->next; //将新数据的next赋值为头节点的nextr->next = s; //将尾指针指向新数据r=s; //将新插入的节点设为尾指针//输入数据printf("请输入一个整型数:");scanf("%d", &x);}r->next=NULL; //将尾指针的next指向NULLreturn L; //返回头节点
}
总结
头插法和尾插法建立单链表步骤很相似,而尾插法需要将新插入的节点重新设为尾节点,以上就是两种方法创建单链表。
C语言头插法尾插法创建单链表相关推荐
- C语言的单链表创建:头插法/尾插法
文章目录 前言 链表头插法 链表尾插法 源码实现 前言 接下来一段时间,将对数据结构进行复习,总的来说数据结构自大学之后忘记得有点吓人,为了防止脑容量本就小得脑袋更小,必须得持续性得温故了. 链表数据 ...
- c语言 链表建立头插法尾插法,单链表的创建(头插法和尾插法)
单链表的创建分为头插法和尾插法,头插法是不断地向头结点插入新的结点.这样会使你所插入的结点值呈现逆序,所以头插法也可以实现单链表的逆置.尾插法是不断地向插入的新元素之后再插入新的元素.需要注意的是头插 ...
- 单链表的头插法和尾插法c语言实现
/*单链表的头插法和尾插法c语言实现*/ #include <stdio.h> #include <stdlib.h> #include <string.h> #d ...
- 计算机软件技术 上海电力学院,上海电力学院 计算机软件技术 实验三 用头插法和尾插法创建线性表...
上海电力学院计算机软件技术实验三用头插法和尾插法创建线性表 #include #define MAXLEN 9 struct table {int key; int othererm; } ; typ ...
- 数据结构学习(二)——单链表的操作之头插法和尾插法创建链表
http://blog.csdn.net/abclixu123/article/details/8210109 链表也是线性表的一种,与顺序表不同的是,它在内存中不是连续存放的.在C语言中,链表是通过 ...
- 头插法和尾插法创建链表(有无头结点)
头插法和尾插法创建链表(有无头结点) 文章目录 头插法和尾插法创建链表(有无头结点) 1 头插法 1.1头插法建表规则: 1.2 头插法建表代码实现 2 尾插法 2.1 尾插法建表规则: 2.2 尾插 ...
- C语言的双向链表头插法和尾插法,指定节点删除
文章目录 前言 头插法 尾插法 删除节点 测试代码如下 前言 双向链表和单链表的唯一区别就是多个一个指针域而已,该指针域可以访问链表的上一个节点. 关于构造双向链表的过程我们常见的有两种方法,和单链表 ...
- 采用头插法和尾插法建立单链表
面说一下如果用C语言建立单链表,分为头插法和尾插法两种. 采用头插法建立单链表 该方法从一个空表开始,生成新结点,并将读取到的数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头,即头结点之后 ...
- 单链表的头插法尾插法及删除节点操作
带头节点的单链表的头插法尾插法及删除节点操作 链表的操作对于初学者来说理解非常有难度,初学的同学们应该在学习链表的过程中多再练习本上画图,写一行代码就画出代码执行后链表各节点图的变化,方便理解.我也是 ...
最新文章
- spark指定python版本_如何将正常的Python应用程序正确转换为PySpark版本
- FileOutputSteam入门
- Hibernate--关系映射和关联关系的CRUD
- html的搜索框代码怎么写_网站新闻怎么写才能被搜索引擎收录?
- Oracle触发器1-介绍
- 【bzoj2038】[2009国家集训队]小Z的袜子(hose) 莫队算法
- Windows 下的文件被占用问题解决
- 计算机对log取反函数,ln计算(log计算器在线)
- 【使用pycharm管理github仓库】github代码版本控制
- 小学生C++编程启蒙
- Listary 配置常用搜索
- 初识AutoIt v3
- Spark宽窄依赖详解
- 在GridControl中使用GridLookUpEdit的正确姿势
- 谁能最后享受到胜利成果?
- 粘着控制基础入门(二)
- Game35传销模式的合约代码公布
- Python 面向对象 --- 多态
- 立体仓库WCS系统-堆垛机(SRM)控制
- 西门子SMART PLC的自由口发送测试(一)