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

单链表结构

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


单链表的头指针与头结点

具体如下图所

       

头指针:

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

头结点:

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

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

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

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

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

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

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

6.单链表排序
遍历链表;
根据双层 for 循环,大数沉底,调整指针;
返回头指针;


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值