資料結構佇列的基本操作

2021-06-09 20:07:08 字數 1048 閱讀 8984

#include #include // 鍊錶:佇列的鏈式儲存結構

typedef struct queuenode

qnode, *queueptr;

// 指向佇列頭和尾的指標結構體

typedef struct

queue;

int main()

// 構造乙個空佇列

void initqueue(queue *q)

// 向隊尾插入元素

void insertqueue(queue *q, char e)

// 若佇列不為空,刪除隊頭元素,並用e返回其值

void delhead(queue *q, char e )

// 銷毀佇列,無論空與否均可

void destoryqueue(queue *q)

printf("success to destory queue!\n");

}// 判斷佇列是否為空,若空則返回1,不空返回0

int queueempty(queue *q)

// 返回佇列的長度,即元素個數

int queuelength(queue *q)

return cnt;

}// 若佇列不為空則返回,用e返回隊頭元素

char gethead(queue *q, char e)

總結:1、(1)q->front:表示頭結點

(2)q->rear:表示尾節點

(3)q->front->next:表示頭結點的下乙個節點

(4)q->rear->next:表示尾節點的下乙個節點

2、warning:'e' is used uninitialized in this function  因為e只定義卻未付值,開始給e賦值就解決了

3、注意:構造棧時,第乙個隊頭節為空節點不被利用,但可以儲存一些有關佇列的資訊使用

4、注意:變數要對其賦初值,否則會出錯!求佇列長度時未賦初值導致佇列長度每次執行都是不同的長度值

資料結構 佇列的基本操作

佇列 簡稱隊,一種受限的線性表,只允許在表的一端進行插入,在表的另一端進行刪除操作 先進先出 隊頭 進行刪除的一端 隊尾 進行插入的一端 空佇列 不含任何元素的空表 佇列的基本操作 佇列分為順序佇列 迴圈佇列和鏈式佇列,順序佇列容易發生假溢位現象 隊尾超過限定長度 故不常用,下面是迴圈佇列和鏈式佇列...

資料結構 佇列的基本操作

佇列是一種先進先出 first in first out 的線性表,簡稱fifo。與棧不同,棧是一種後進先出 先進後出 的線性表。在佇列中,允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。假設佇列是q a1,a2,an 那麼a1就是隊頭元素,而an是隊尾元素。這樣我們就可以刪除時,總是從a1開始,而...

資料結構 鏈佇列基本操作

include 鏈佇列的基本操作,首先我們要知道佇列是在隊頭進行刪除,隊尾進行插入 include includetypedef struct sq sq typedef struct squeue 到此,佇列的資料結構型別定義完畢 void init squeue squeue p 佇列的初始化 ...