数据结构基础 之 单链表 各类操作、思想与实现
2015-04-06 20:18
507 查看
单链表结构
节点分为一个数据域和一个指针域。单链表的头指针与头结点
具体如下图所示:![](http://www.nowamagic.net/librarys/images/201205/2012_05_04_03.jpg)
头指针:
在线性表的链式存储结构中,头指针是指链表指向第一个结点的指针,若链表有头结点,则头指针就是指向链表头结点的指针。
头指针具有标识作用,故常用头指针冠以链表的名字。
无论链表是否为空,头指针均不为空。头指针是链表的必要元素。
头结点:
头结点是为了操作的统一与方便而设立的,放在第一个元素结点之前,其数据域一般无意义(当然有些情况下也可存放链表的长度、用做监视哨等等)。
有了头结点后,对在第一个元素结点前插入结点和删除第一个结点,其操作与对其它结点的操作统一了。
首元结点也就是第一个元素的结点,它是头结点后边的第一个结点。
头结点不是链表所必需的。
单链表操作:
1. 创建
2. 插入
3. 删除
4. 测长
5. 输出
6. 逆置
7. 排序
1.单链表创建
直接对单表元素采用 while循环机制
malloc 函数 赋值,只要不出现约定的元素出现,单链表即可不断添加元素;
返回头指针;
2.单链表插入
malloc 函数创建动态内存空间;
判断链表是否为空并找到与待插入元素的数值为相邻大小的位置;
判断位置在头、间、尾,进行各项应插入操作;返回头指针;
返回头指针;
3.单链表删除
遍历链表,找到待删除元素的位置;
根据元素所在头、间、尾,对指针进行相应操作;
free函数 删除指针 对应动态内存空间;
4.测长与输出
while 循环机制对链表遍历;
对每个元素输出 \ 每读一个元素即常数加 1 ;
完成输出 \ 输出常量;
返回头指针;
5.单链表逆置
判断链表是否为空或者元素为1个;
声明三个元素结点指针;
对头指针与头指针的后一结点赋指针;
采用 while 循环机制,第三元素赋值,三个指针平移操作,逆置指针方向;
头指针置于链表尾部;
原头指针置空;
返回头指针;
6.单链表排序
遍历链表;
根据双层 for 循环,大数沉底,调整指针;
返回头指针;
相关文章推荐
- 数据结构基础 之 双链表 与 循环链表 各类操作、思想与实现
- 数据结构基础 之 树与二叉树 各类操作、思想与实现
- 数据结构基础(9) --单链表的设计与实现(2)之高级操作
- hrbustoj 1545:基础数据结构——顺序表(2)(数据结构,顺序表的实现及基本操作,入门题)
- 数据结构之链表-链表实现及常用操作(C++篇)
- 数据结构基础(11) --循环链表的设计与实现
- 数据结构基础(12) --双向循环链表的设计与实现
- 数据结构基础(9) --单链表的设计与实现(2)之高级操作
- 数据结构基础(9) --单链表的设计与实现(2)之高级操作
- 数据结构基础(8) --单链表的设计与实现(1)之基本操作
- 数据结构基础(10) --单链表迭代器的设计与实现
- 数据结构基础(8) --单链表的设计与实现(1)之基本操作
- 数据结构基础(11) --循环链表的设计与实现
- 数据结构基础(10) --单链表迭代器的设计与实现
- 数据结构基础(12) --双向循环链表的设计与实现
- 数据结构基础(9) --单链表的设计与实现(2)之高级操作
- 【巩固基础】数据结构——链表的操作:链表的创建和逆序操作
- 数据结构基础(8) --单链表的设计与实现(1)之基本操作
- 数据结构基础 之 二叉搜索树的思想与实现
- 数据结构基础(3)---C语言实现单链表