mirror of
https://github.com/Didnelpsun/CS408.git
synced 2026-11-01 12:57:04 +08:00
更新链表
This commit is contained in:
@@ -108,7 +108,7 @@ typedef struct {
|
||||
|
||||
每个结点只包含一个指针域,也称为线性链表。
|
||||
|
||||
通常用头指针来标识一个单链表,如单链表L。
|
||||
通常用头指针来标识一个单链表,如单链表$L$。
|
||||
|
||||
### 单链表特点
|
||||
|
||||
@@ -116,9 +116,19 @@ typedef struct {
|
||||
+ 不可随机存取。
|
||||
+ 要花费多余空间存放指针。
|
||||
|
||||
是非随机存取的存储结构。
|
||||
|
||||
### 单链表定义
|
||||
|
||||
使用LinkNode表示一个单链表结点的结构体,而使用LinkList表示一个单链表,其实LinkList是一个指向LinkNode的指针变量。如定义LinkList L等价于LinkNode* L。
|
||||
使用`LinkNode`表示一个单链表结点的结构体,而使用`LinkList`表示一个单链表,其实`LinkList`是一个指向`LinkNode`的指针变量。如定义`LinkList L`等价于`LinkNode* L`。
|
||||
|
||||
```c
|
||||
// 单链表结点
|
||||
typedef struct LinkListNode {
|
||||
element_type data;
|
||||
struct LinkListNode* next;
|
||||
} LinkListNode, *LinkList;
|
||||
```
|
||||
|
||||
### 单链表操作
|
||||
|
||||
@@ -126,6 +136,9 @@ typedef struct {
|
||||
|
||||
有带头节点与不带头节点的初始化的区别,带头节点代表第一个结点不存放数据,只是用于标识单链表的开始,但是区别不大,带头结点更好使用。
|
||||
|
||||
+ 由于第一个数据结点的位置被存放在头结点的指针域中,因此在链表的第一个位置上的操作和在表的其他位置上的操作一致,无须进行特殊处理。
|
||||
+ 无论链表是否为空,其头指针都指向头结点的非空指针(空表中头结点的指针域为空),因此空表和非空表的处理也就得到了统一。
|
||||
|
||||
#### 单链表插入
|
||||
|
||||
插入方式一共分为下面几种:
|
||||
|
||||
Reference in New Issue
Block a user