考研資料結構 線性表 佇列

2021-09-25 05:51:30 字數 1807 閱讀 6921

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...