考研資料結構筆記 佇列

2021-09-27 01:32:25 字數 1285 閱讀 7393

鏈佇列佇列的定義:是一種先進先出的線性表,僅允許在表的一端進行插入,在表的另一端進行刪除,可進行插入操作的一端稱為隊尾,可進行刪除操作的一端稱為隊首

佇列的特點:先進先出(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加入使之成為新棧...