def-佇列是一種操作受限的線性表,與棧相同也不同,不同的是佇列是在一端進入(入隊),另一端出去(出隊)。操作特性是先進先出。
通常由乙個一維陣列和乙個記錄佇列頭元素位置的變數front以及乙個記錄尾元素位置的變數rear組成。
1.佇列的順序儲存結構定義
#define maxsize 100
//佇列順序儲存結構定義
typedef struct sqqueue,*queue;
初始狀態(隊空條件):q.front == q.rear==0
進隊操作: 隊不滿時,先送值到隊尾元素,再將隊尾指標(下標)加1
出隊操作: 隊不空時,先取隊頭元素值,再將隊頭指標加1
迴圈佇列
將順序佇列改造為乙個環狀的空間,稱為迴圈佇列
初始狀態:q.front=q.rear=0
隊首指標進1:q.front=(q.front+1)%maxsize
隊尾指標進1:q.rear=(q.rear+1)%maxsize
佇列長度:(q.rear+maxsize-q.front)%maxsize
2.迴圈佇列初始化
void initqueue(sqqueue &q)
3.判斷迴圈佇列是否為空
bool isempty(sqqueue q)
else
}
4.入隊操作
bool enqueue(sqqueue &q, int x)
5.出隊操作
bool dequeue(sqqueue &q, int &x)
實際上,佇列的鏈式儲存結構就是帶有隊頭指標和隊尾指標的單鏈表
1.佇列鏈式儲存結構定義
typedef struct linknode;
typedef struct linkqueue;
2.鏈式佇列的初始化
void initqueue(linkqueue &q)
3.判斷空
bool isempty(linkqueue q)
4.入隊
void enqueue(linkqueue &q, int x)
5.出隊
bool dequeue(linkqueue &q, int &x)
考研資料結構 線性表
線性表是具有相同特徵資料元素的乙個有限序列。元素個數叫做線性表的長度,n n 0 表示,n 0 空表 只有乙個表頭元素,只有乙個表尾元素。表頭無前驅,表尾無後繼,除表頭和表尾外,其他元素只有乙個直接前驅,也只有乙個直接後繼。順序儲存結構 順序表 和鏈式儲存結構 鍊錶 兩種。順序表 連續儲存 順序儲存...
資料結構考研筆記 線性表
1.線性表的定義 線性表是具有相同特性元素的乙個有限序列。所含元素個數 線性表長度。2.線性表的邏輯特性 只有乙個表頭元素,乙個表尾元素,表頭元素沒有前驅,表尾元素沒有後繼,其他元素只有乙個直接前驅,乙個直接後繼。3.線性表的儲存結構 1 順序儲存結構 順序表 隨機訪問特性 需占用連續的儲存空間 做...
考研資料結構 線性表 棧
1.棧是一種線性表,主要特點就是只允許在一端進行插入或刪除操作的線性表。2.棧頂 top 線性表允許進行插入和刪除的一端 棧底 bottom 是固定的,不允許進行插入和刪除的一端 採用順序儲存的棧被稱為 順序棧 通常順序儲存結構由乙個 一維陣列 和乙個記錄 棧頂 元素位置的變數組成。1.結構定義 d...