以下笔记来自王老师的视频截图:https://www.bilibili.com/read/cv3285768

目录

(一)链表概念

 单链表,双链表,循环链表

 头指针,头结点,首元结点

 如何表示空表

 在链表种设置头结点的好处

头结点的数据域里装的什么

 链式存储结构的特点--顺序存取法

(二)单链表的定义

 带头结点的单链表

 单链表的存储结构

 单链表的定义和表示

(三) 单链表基本操作

初始化和判断空表

 销毁单链表

清空单链表

 

 求单链表的表长

 取第i个元素值

知识回顾(重点)

 取值​

 按值查找

插入节点

删除节点

 

时间效率分析

头插法建立链表

 时间复杂度O(n)

尾插法建立链表

 时间复杂度O(n)


(一)链表概念

05 线性表的链式表示和实现

 05 线性表的链式表示和实现

 05 线性表的链式表示和实现

 05 线性表的链式表示和实现

05 线性表的链式表示和实现 

 05 线性表的链式表示和实现

 单链表,双链表,循环链表

05 线性表的链式表示和实现

 头指针,头结点,首元结点

05 线性表的链式表示和实现

 05 线性表的链式表示和实现

 如何表示空表

05 线性表的链式表示和实现

 在链表种设置头结点的好处

05 线性表的链式表示和实现 

头结点的数据域里装的什么

05 线性表的链式表示和实现

 链式存储结构的特点--顺序存取法

05 线性表的链式表示和实现-

 

(二)单链表的定义

05 线性表的链式表示和实现

 带头结点的单链表

05 线性表的链式表示和实现

 单链表的存储结构

05 线性表的链式表示和实现

Lnode 和 *LinkList 都是 类型

Lnode a;     a.data   a.next

Lnode * p;

LinkList * L       LinkList L;(LinkList本身就是指针类型)

05 线性表的链式表示和实现

虽然他们等价,通常按方框种那样定义。

 单链表的定义和表示

05 线性表的链式表示和实现

 

(三) 单链表基本操作

初始化和判断空表

05 线性表的链式表示和实现

 05 线性表的链式表示和实现

&L 是说L本来没有,分配好空间就有了数据,分配好后的值仍用L。

 05 线性表的链式表示和实现

 这里没有&  是因为不需要对L进行更改,只读就行,只做判断。

 销毁单链表

 05 线性表的链式表示和实现

delete p   对应 new node

free(p) 对应 malloc()

用delete和free(p)都可以,但是要一一对应。

05 线性表的链式表示和实现

 

清空单链表

05 线性表的链式表示和实现

 05 线性表的链式表示和实现

 

 求单链表的表长

05 线性表的链式表示和实现

05 线性表的链式表示和实现

LinkList p 等于 Lnode * p

05 线性表的链式表示和实现

 

 取第i个元素值

知识回顾(重点)

05 线性表的链式表示和实现

 取值05 线性表的链式表示和实现

 05 线性表的链式表示和实现

 e要返回值 所以用了引用型变量

05 线性表的链式表示和实现

 

 按值查找

05 线性表的链式表示和实现

 05 线性表的链式表示和实现

 05 线性表的链式表示和实现

 05 线性表的链式表示和实现

 return p 有两种可能:找到了就返回当前p结点。   没找到它就指向null,也返回p就行

 05 线性表的链式表示和实现

 

插入节点

05 线性表的链式表示和实现

 

 05 线性表的链式表示和实现

s是指针,s存放结点的地址

 05 线性表的链式表示和实现

 

删除节点

05 线性表的链式表示和实现

 05 线性表的链式表示和实现

 05 线性表的链式表示和实现

 

时间效率分析

05 线性表的链式表示和实现

头插法建立链表

 05 线性表的链式表示和实现

 05 线性表的链式表示和实现

05 线性表的链式表示和实现 

 时间复杂度O(n)

 

尾插法建立链表

05 线性表的链式表示和实现

05 线性表的链式表示和实现

 时间复杂度O(n)

相关文章: