資料結構 佇列筆記

2021-10-11 18:59:45 字數 2930 閱讀 2220

有序列表,可以用陣列或者鍊錶來實現

特點:先進先出

eg:銀行排號

陣列模擬佇列演算法

**實現

public

class

arrayqueuedemo

case

'a':

case

'g':

catch

(exception e)

break;}

case

'h':

catch

(exception e)

break;}

case

'e':

default

:break;}

}}}//

class

arrayqueue

//判斷是否為滿

public

boolean

isfull()

//判斷佇列是否為空

public

boolean

isempty()

//新增資料到佇列

public

void

addqueue

(int n)

rear++

; arr[rear]

= n;

}//出佇列

public

intgetqueue()

return arr[

++front];}

//顯示佇列所有資料

public

void

findallqueue()

for(

int i =

0;i//顯示佇列頭資料

public

intfindheadqueue()

return arr[front+1];}}

缺點:

我們取出佇列,佇列是少了乙個元素,但是顯示還是原來的,剛取出的元素還被顯示了(事實上已經取出來了)

我們的佇列沒有辦法實行環形,我們取出結束,不能再加元素了,也就是我們的頭指標沒有指向最初,不能復用

改進環形佇列

取%

front指向我們的第乙個元素下標,即arr【front】就是第乙個元素

front初始值為0

rear指向佇列的最後乙個元素的後面的乙個位置,空出乙個空間做約定

rear初始值為0

佇列滿時的條件

(rear+1)%maxsize = front
隊列為空,

rear = front
佇列的有效的資料個數為

(rear + maxsize - front)%maxsize
public

class

circlearrayqueuedemo

case

'a':

case

'g':

catch

(exception e)

break;}

case

'h':

catch

(exception e)

break;}

case

'f':

case

'e':

default

:break;}

}}}class

circlearrayqueue

//判斷是否滿

public

boolean

isfull()

//判斷佇列是否為空

public

boolean

isempty()

//新增資料到佇列

public

void

addcirclequeue

(int n)

//直接將資料加入

arr[rear]

= n;

//rear後移

rear =

(rear +1)

%maxsize;

}//出佇列

public

intgetcirclequeue()

//front直接指向我們佇列第乙個元素了

//1.先把front的值儲存一下,

//3.將儲存的變數返回

int value = arr[front]

; front =

(front+1)

%maxsize;

return value;

}//求出當前資料有效個數

public

intsize()

//顯示佇列所有資料

public

void

findallcirclequeue()

//從front開始遍歷,不應該是從0開始

//for

(int i =front ;i

size()

;i++

) system.out.

println

("輸出完畢");

}//顯示隊首

public

intfindcircleheadqueue()

return arr[front];}

}

資料結構筆記 佇列

佇列 queue 是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。佇列是一種先進先出的線性表。允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。如下圖所示 線性表有順序儲存和鏈式儲存,棧是線性表,所以有這兩種儲存方式。同樣,佇列作為一種特殊的線性表,也同樣存在這兩種儲存方式。佇列順序儲存的...

筆記 資料結構 佇列

特性 先進先出,不可根據索引查詢 介面inte ce iqueueds 屬性,佇列中的個數 int getlength 方法,佇列中的個數 bool isempty 佇列是否為空 void clear 清空佇列 void enqueue t item 入隊 t dequeue 出隊 t peek 觀...

資料結構筆記之佇列

佇列是只允許在一端進行插入 隊尾 而在另一端進行刪除 隊首 的線性表。先進入佇列的元素必然先離開佇列.即先進先出 fifo 順序佇列 define maxsize 50 佇列中元素最大個數 typedef struct sqqueue 迴圈佇列有乙個明顯的缺點就是假溢位,即佇列仍然有空間,但是由於隊...