您的位置:首页 > 理论基础 > 数据结构算法

数据结构基础 之 单链表 各类操作、思想与实现

2015-04-06 20:18 507 查看

单链表结构

节点分为一个数据域和一个指针域。

单链表的头指针与头结点

具体如下图所示:




头指针:

在线性表的链式存储结构中,头指针是指链表指向第一个结点的指针,若链表有头结点,则头指针就是指向链表头结点的指针。
头指针具有标识作用,故常用头指针冠以链表的名字。
无论链表是否为空,头指针均不为空。头指针是链表的必要元素。

头结点:

头结点是为了操作的统一与方便而设立的,放在第一个元素结点之前,其数据域一般无意义(当然有些情况下也可存放链表的长度、用做监视哨等等)。
有了头结点后,对在第一个元素结点前插入结点和删除第一个结点,其操作与对其它结点的操作统一了。
首元结点也就是第一个元素的结点,它是头结点后边的第一个结点。
头结点不是链表所必需的。

单链表操作:
1. 创建
2. 插入
3. 删除
4. 测长
5. 输出
6. 逆置
7. 排序

1.单链表创建

直接对单表元素采用 while循环机制
malloc 函数 赋值,只要不出现约定的元素出现,单链表即可不断添加元素;
返回头指针;

2.单链表插入
malloc 函数创建动态内存空间;
判断链表是否为空并找到与待插入元素的数值为相邻大小的位置;
判断位置在头、间、尾,进行各项应插入操作;返回头指针;

返回头指针;

3.单链表删除
遍历链表,找到待删除元素的位置;
根据元素所在头、间、尾,对指针进行相应操作;
free函数 删除指针 对应动态内存空间;

4.测长与输出
while 循环机制对链表遍历;
对每个元素输出 \ 每读一个元素即常数加 1 ;
完成输出 \ 输出常量;

返回头指针;

5.单链表逆置
判断链表是否为空或者元素为1个;
声明三个元素结点指针;
对头指针与头指针的后一结点赋指针;
采用 while 循环机制,第三元素赋值,三个指针平移操作,逆置指针方向;
头指针置于链表尾部;
原头指针置空;
返回头指针;

6.单链表排序
遍历链表;
根据双层 for 循环,大数沉底,调整指针;
返回头指针;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: