資料結構 佇列總結

2021-09-29 02:29:11 字數 1929 閱讀 3025

用順序和鏈式實現了線性表,這次要用順序和鏈式實現佇列了。

佇列:只允許在一端進行插入操作,而另一端進行刪除操作的線性表。

允許插入(入隊、進隊)的一端稱為隊尾,允許刪除(出隊)的一端稱為隊頭。

佇列的操作特性:先進先出

順序佇列——佇列的順序儲存結構

假溢位:當元素被插入到陣列中下標最大的位置上之後,佇列的空間就用盡了,儘管此時陣列的低端還有空閒空間。

解決:迴圈佇列:將儲存佇列的陣列頭尾相接。

不存在物理的迴圈結構,用軟體方法實現。

求模:rear=(rear+1)% maxsize front=(front+1) % mazsize

隊空:front= =rear

隊滿的條件:

方法一:附設乙個儲存佇列中元素個數的變數num,當num=0時隊空,當num=queuesize時為隊滿;

方法二:修改隊滿條件,浪費乙個元素空間,隊滿時陣列中只有乙個空閒單元;

方法三:設定標誌flag,當front=rear且flag=0時為隊空,當front=rear且flag=1時為隊滿。

浪費乙個空間隊滿:(rear+1) %queuesize==front

//迴圈佇列類的宣告:

struct node

;const

int queuesize=

100;

template

<

class

t>

class

cirqueue

; private

: t data[queuesize]

;int front, rear;};

//入隊

template

<

class

t>

void cirqueue

::enqueue

(t x)

//出隊

template

<

class

t>

t cirqueue

::dequeue()

//取隊首

template

<

class

t>

t cirqueue

::getqueue()

//長度

template

<

class

t>

int cirqueue

::getlength()

佇列長度

鏈佇列——佇列的鏈結儲存結構

//鏈佇列類的宣告

struct node

;template

<

class

t>

class

linkqueue

;template

<

class

t>

linkqueue

::linkqueue()

//入隊

template

<

class

t>

void linkqueue

::enqueue

(t x)

//出隊

資料結構 佇列總結

一.何為佇列?在資料結構中,在有序列表中資料的輸入輸出分別是由不同埠處理的,輸出端稱為前端,輸入端稱為後端,這樣會使得先進入的資料先被取出,即它具有先進先出的特性。二.佇列都分為那幾類?我們最常見的佇列有 順序佇列,迴圈佇列,鏈佇列以及雙向佇列 不過,我們除了必須掌握這幾種常見佇列也要對不常見的佇列...

資料結構之佇列總結

佇列 queue 是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。是一種先進先出 first in first out 的線性表,簡稱fifo。允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。迴圈佇列是把佇列頭尾相接的順序儲存結構。通用計算佇列長度的公式 rear front max s...

含淚總結篇 資料結構 佇列

系列文章 什麼是資料結構?什麼是演算法?資料結構 陣列 資料結構 鍊錶 資料結構 棧 資料結構 佇列 資料結構 排序 優勢 陣列或鍊錶暴露了太多的操作介面,不適合特點的場景下的安全和可控情況。實現 用陣列實現的佇列 public class arrayqueue 入隊操作,將 item 放入隊尾 p...