資料結構 堆疊與佇列 2

2021-10-07 15:35:50 字數 1476 閱讀 2253

佇列是一種特殊的線性表,它只允許在表的前端front進行刪除操作,在表的後端rear進行插入操作。

進行插入操作的稱為隊尾rear,進行刪除操作的為隊頭。

佇列中沒有元素時,稱為空佇列。

佇列具有先進先出的特點。

佇列空的條件:front=rear

佇列滿的條件:rear=maxsize

迴圈佇列

將儲存佇列元素的以為陣列首尾相接,形成乙個環狀,這種形式表示為迴圈佇列。

通常還需要增加標誌s來區分佇列滿還是空。

型別定義

//佇列最大資料元素數目

#define max_size 10

typedef

struct seqqueueseqqueue;

入隊操作

void

enqueue

(seqqueue sq,elemtype elem)

}

出隊操作

elemtype dequeue

(seqqueue sq)

}

獲取佇列頭元素

elemtype front

(seqqueue sq)

else

}

判斷佇列是否為空

boolean isempty

(seqqueue sq)

用鏈式儲存結構表示佇列時,需要設定隊頭指標和隊尾指標,以便指示隊頭結點和隊尾結點。

結點結構

typedef

struct lqnodelqnode;

鏈式佇列

typedef

struct linkedqueuelinkedqueue;

初始化佇列

void

initiate

(linkedqueue lq)

入隊操作

void

enqueue

(linkedqueue lq,elemtype elem)

出隊操作

elemtype dequeue

(linkedqueue lq)

}

資料結構之堆疊與佇列

define maxsize 20 define error 1 typedef struct stack stack createstack int maxsize 生成空堆疊,其最大長度為maxsize int isfull stack s,int maxsize 判斷堆疊s是否已滿 else ...

資料結構 堆疊與佇列 1

棧是一種特殊的線性表,即lifo線性表 last in first out,後進先出 進行插入和刪除的一端是浮動端,通常稱為棧頂,並用一指標指示,稱作棧頂指標,而另一端是固定端,通常被稱為棧底。initiate s 初始化 push s,elem 入棧 pop s,elem 出棧 isempty s...

資料結構 堆疊與佇列複習大綱

1.1 棧的基本概念 棧 stack 只允許在一端進行插入或刪除操作的線性表 棧頂 top 線性表允許進行插入和刪除的那一端 特點 lifo last in first out 後進先出 操作特徵 1.2 棧的基本操作 1.3 佇列的基本概念 佇列 quene 是一種操作受限的線性表,只允許在表的一...