数据结构(4) 链表(链式存储)


链表

定义

顺序表优点:可随机存取,存储密度高,缺点:要求大片连续空间,改变容量不方便。
单链表优点:不要求大片连续空间,改变容量方便,缺点:不可随机存取,要耗费一定空间存放指针。

定义单链表的代码:

定义数据领和指针域

定义一个新节点

定义typedef关键字来缩短函数书写麻烦

所以综上定义单链表有两种方式

要表示一个单链表时,只需声明一个头指针L,指向单链表的第一个结点
LNode * L; //声明一个指向单链表第一个结点的指针,或者LinkList L;//声明一个指向单链表第一个结点的指针,后者代码可读性更强。

  • 强调这是一个单链表–使用 LinkList
  • 强调这是一个结点–使用LNode*
  • 二者本质相同,都用于定义一个类型为单链表的指针

初始化一个不带头节点的单链表:


初始化一个带头节点的单链表:

基本操作的实现

单链表的插入

按位序插入

带头结点插入

不带头结点插入

指定节点的前插
  • 法1:用已知头指针来遍历链表插入
  • 法2:用已知p节点后插入数据来转移数据(时间复杂度为O(1))
指定节点的后插


单链表的删除

  • 法1:用已知头指针来遍历链表删除

  • 法2:用已知p节点删除数据(时间复杂度为O(1))(且p节点不能为最后一个节点)

小结

转载请说明出处内容投诉
CSS教程_站长资源网 » 数据结构(4) 链表(链式存储)

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买