链表(linked list)的别称
线性表的链式表示、链式存储结构、链式映像、随机存取结构的储存结构
单向链表
长相
无头链表
指向首元结点的指针叫做头指针(head pointed)
有头链表
第一个结点叫头结点(head node)
线性表的链式表示、链式存储结构、链式映像、随机存取结构的储存结构
指向首元结点的指针叫做头指针(head pointed)
第一个结点叫头结点(head node)
线性表的顺序表示、顺序存储结构、顺序映像、随机存取结构的储存结构
利用数组的连续存储空间顺序存放线性表的各个元素
a[n-1]
是 a[n]
的直接前趋,a[n+1]
是 a[n]
的直接后继。
1 | typedef struct sqList { |
1 | class LNode: |
在之前的 C 语言的学习当中,我们提到了 malloc
和 free
,这两个函数是用来动态分配内存的。
看好。
动态分配的代码是这样写的。
1 |
|
1 | typedef struct { |
我来解释一下,这个结构体声明。
length 是你实际存了多少的东西,listSize 是你目前表的最大长度。
其实,无非就是创、增、删、改、读、销。
线性表(linear list)有以下三个规则:
线性表长度为 n
,也可以直接用 xxLen
表示
当 n=0
时,就是空表
a
的下表 i 表示的是 a(i)
在线性表的位序
对于线性表存在两种输入的情况:
List L
getLength(List L)
List *L
initList(List *L)
L->
但是,我们要注意的是结构体。
举个例子
这是一个动态分配