鏈佇列佇列的定義:是一種先進先出的線性表,僅允許在表的一端進行插入,在表的另一端進行刪除,可進行插入操作的一端稱為隊尾,可進行刪除操作的一端稱為隊首。
佇列的特點:先進先出(first in first out,fifo)。
佇列的儲存結構:可以分為順序佇列和鏈隊。
//順序佇列的定義
typedef structsqqueue;
//鏈隊定義
//隊結點型別定義
typedef struct qnodeqnode;
//鏈隊型別定義
typedef struct linkqueue;
在順序隊中,為了解決「假溢位」問題,需要把陣列變成乙個環狀,讓front和rear沿著環走,這樣就可以避免了假溢位問題,這樣就形成了迴圈佇列。
迴圈佇列的兩個狀態:
迴圈佇列的兩個操作:
順序佇列操作**
//初始化佇列
void initqueue(sqqueue &qu)
//判斷隊空演算法
int isqueueempty(sqqueue qu)
//元素入隊
int enqueue(sqqueue &qu, int x)
//元素出隊
int dequeue(sqqueue &qu, int &x)
注:鏈隊就是使用鏈式儲存結構來儲存佇列,這裡使用單鏈表來實現。 在上述**中,front頭指標,若佇列不空,始終指向隊頭元素的前乙個位置,rear尾指標,若佇列不空指向隊尾元素。
上述兩種指標的指向方式都是可以的。
鏈式佇列的兩個狀態:
鏈隊的兩個操作:
鏈隊的基本操作**
//初始化佇列
void initqueue(linkqueue *&lqu)
//判斷隊空
int isqueueempty(linkqueue *lqu)
//入隊
void enqueue(linkqueue *&lqu, int x)
}//出隊
int dequeue(linkqueue *lqu, int &x)
考研資料結構筆記 棧
鏈棧棧的定義 棧是一種只能在一端進行插入或刪除操作的線性表,棧頂 允許進行插入或刪除操作的一端稱為棧頂 棧底 相對於棧頂在表的另一端,不能進行插入或刪除操作的一端稱為棧底,棧底是固定不變的。入棧 向棧中插入元素 出棧 刪除棧頂元素 棧最主要的特點就是先進後出 last in first out 按照...
王道考研 資料結構 筆記
上面這張圖來自課件,發現這張圖將計算機四大基礎學科之間的關係很好的體現出來了,故貼在這。資料元素 資料項 資料元素是資料的基本單位。資料元素由資料項組成。如,在飯館排隊的顧客,可用以下資料元素和資料項表示 資料結構 資料物件 資料結構是相互之間存在一種或多種特定關係的資料元素的集合。資料物件是具有相...
資料結構考研學習筆記(五) 棧和佇列
棧頂 線性表允許進行插入刪除的那一端。棧底 固定的,不允許進行插入和刪除的另一端。空棧 不含任何元素的空表 initstack s 初始化乙個空棧s。stackempty s 判斷乙個棧是否為空,若棧s為空則返回true,否則返回false。push s,x 進棧,若棧s未滿,則將x加入使之成為新棧...