## 一.循環鏈表
當使用單鏈表進行遍歷的時候,我們只能從頭結點開始,尾結點結束,如果需要查看指針所指向結點的前面結點,我們又必須從頭結點開始遍歷。為了解決這個問題,我們便引入了雙鏈表,使其能夠雙向遍歷,但是它又引入了prior指針域,增加了額外的開銷。為此,我們便又引入了循環鏈表。所謂循環鏈表簡單來說就是表尾的指針域指向表頭從而使整個鏈表形成了一個閉環。
### 1.1循環單鏈表
循環單鏈表和單鏈表的的區別在于,表中最后一個節點的指針域不是NULL,而是指向了頭結點,從而使整個鏈表形成一個環,如圖所示:

在循環單鏈表中,表尾結點*r的next指針域指向頭結點head,故表中沒有指針域為NULL的結點。因此判斷循環單鏈表是否為空的條件便是頭結點的指針域是否指向自身。
循環單鏈表的插入,刪除操作與單鏈表的基本操作一致,但是當在表尾結點處進行插入,刪除操作時,必須注意不能使其斷鏈。同時我們應注意到,一般情況下,我們對鏈表的操作大部分集中在表尾,如此,我們對循環單鏈表并不設置頭指針,只設置一個尾指針,從而使得操作效率更高
### 1.2循環雙鏈表
由循環單鏈表的定義我們很容易的便可以得到循環雙鏈表,但與循環單鏈表不同的是循環雙鏈表的尾結點的指針域next在指向頭結點的同時, 頭結點的prior指針域還必須指向尾結點。如圖所示:

循環雙鏈表中,鏈表為空的條件為頭結點的prior指針域和next指針域均指向自身節點。
## 二.靜態鏈表
靜態鏈表是借助數組來描述線性表的鏈式存儲結構的,節點同樣有數據域data和“指針域”next,但與前面所講的指針不同的是,這里的“指針”是結點的相對地址(即數組下標),或稱為游標。因此它與順序表一樣,使用時必須預先分配一塊連續的內存空間。
靜態鏈表和單鏈表的對應關系如下圖所示:

`(a). 靜態鏈表示例`

`(b). 靜態鏈接對應的單鏈表`
其數據結構描述如下:
~~~
#define MaxSize 50
typedef struct{
ElemType data;
int next;
}SLinkList[MaxSize];
~~~
靜態鏈表以`next==-1`作為其結束的標識。靜態鏈表的插入,刪除操作與動態鏈表無異,只需修改“指針”便可。總的來說,靜態鏈表沒有單鏈表使用起來方便,但是在沒有指針類型的高級程序設計語言(如Basic)中使用鏈表結構,卻又不失為一種巧妙的設計方法。
- 前言
- 緒論
- 第1章線性表
- 第1章第1節 線性表的順序表示
- 第1章第1節練習題1 刪除最小值
- 第1章第1節練習題2 逆置順序表
- 第1章第1節練習題3 刪除指定元素
- 第1章第1節練習題4 有序表刪除指定區間值
- 第1章第1節練習題5 無序表刪除指定區間值
- 第1章第1節練習題6 刪除重復值
- 第1章第1節練習題7 順序表的歸并
- 第1章第1節練習題8 順序表循環移位
- 第1章第1節練習題9 查找指定值
- 第1章第1節練習題10 查找中位數
- 第1章第2節 線性表的鏈式表示(1)
- 第1章第2節 線性表的鏈式表示(2)
- 第1章第2節 線性表的鏈式表示(3)
- 第1章第2節練習題1 遞歸刪除指定結點
- 第1章第2節練習題2 非遞歸刪除指定結點
- 第1章第2節練習題3 刪除最小值結點
- 第1章第2節練習題4 刪除指定區間結點
- 第1章第2節練習題5 刪除重復結點
- 第1章第2節練習題6 反向輸出
- 第1章第2節練習題7 遞減輸出
- 第1章第2節練習題8 奇偶拆分單鏈表
- 第1章第2節練習題9 查找公共結點
- 第1章第2節練習題10 查找指定倒數結點
- 第1章第2節練習題11 就地逆置單鏈表
- 第1章第2節練習題12 單鏈表之插入排序
- 第1章第2節練習題13 單鏈表之選擇排序
- 第1章第2節練習題14 判斷子序列
- 第1章第2節練習題15 拆分并逆序單鏈表
- 第1章第2節練習題16 歸并并逆序單鏈表
- 第1章第2節練習題17 使用相同值結形成新單鏈表
- 第1章第2節練習題18 求兩個單鏈表的交集
- 第1章第2節練習題19 判斷循環雙鏈表對稱
- 第1章第2節練習題20 連接兩個循環單鏈表
- 第1章第2節練習題21 輸出并刪除最小值結點
- 第1章第2節練習題22 按結點訪問頻度排序
- 第1章第3節 線性表的比較
- 第2章受限的線性表
- 第2章第1節 棧
- 第2章第1節練習題1 判斷棧的操作次序是否合法
- 第2章第1節練習題2 判斷是否中心對稱
- 第2章第2節 隊列
- 第2章第1節練習題3 共享棧的基本操作
- 第2章第2節練習題1 逆置隊列
- 第2章第2節練習題2 使用棧模擬隊列操作
- 第2章第2節練習題3 使用隊列模擬渡口管理
- 第2章第3節 串
- 第2章第3節練習題1 串的模式匹配(Basic)
- 第2章第3節練習題2 串的模式匹配(KMP)