以下笔记来自王老师的视频截图:https://www.bilibili.com/read/cv3285768
目录
(一)链表概念
单链表,双链表,循环链表
头指针,头结点,首元结点
如何表示空表
在链表种设置头结点的好处
头结点的数据域里装的什么
链式存储结构的特点--顺序存取法
-
(二)单链表的定义
带头结点的单链表
单链表的存储结构
Lnode 和 *LinkList 都是 类型
Lnode a; a.data a.next
Lnode * p;
LinkList * L LinkList L;(LinkList本身就是指针类型)
虽然他们等价,通常按方框种那样定义。
单链表的定义和表示
(三) 单链表基本操作
初始化和判断空表
&L 是说L本来没有,分配好空间就有了数据,分配好后的值仍用L。
这里没有& 是因为不需要对L进行更改,只读就行,只做判断。
销毁单链表
delete p 对应 new node
free(p) 对应 malloc()
用delete和free(p)都可以,但是要一一对应。
清空单链表
求单链表的表长
LinkList p 等于 Lnode * p
取第i个元素值
知识回顾(重点)
取值
e要返回值 所以用了引用型变量
按值查找
return p 有两种可能:找到了就返回当前p结点。 没找到它就指向null,也返回p就行
插入节点
s是指针,s存放结点的地址
删除节点
时间效率分析
头插法建立链表
时间复杂度O(n)