銀行排隊案例佇列是乙個有序列表,可以用陣列或是鍊錶來實現。餐廳排隊案例等…
遵循先入先出的原則。即:先存入佇列的資料,要先取出。後存入的要後取出
1、思路
佇列本身是有序列表,若使用陣列的結構來儲存佇列的資料,則佇列陣列的宣告如下圖, 其中 maxsize 是該佇列的最大容量2、**因為佇列的輸出、輸入是分別從前後端來處理,因此需要兩個變數 front 及 rear 分別記錄佇列前後端的下標, front 會隨著資料輸出而改變,而 rear 則是隨著資料輸入而改變
當我們將資料存入佇列時稱為」addqueue」,addqueue 的處理需要有兩個步驟:思路分析
將尾指標往後移:rear+1 , 當 front == rear 【空】
若尾指標 rear 小於佇列的最大下標 maxsize-1,則將資料存入 rear 所指的陣列元素中,否則無法存入資料。rear== maxsize - 1[佇列滿]
public
class
arrayqueuedemo
catch
(exception e)
break
;case
'h':
int head =0;
trycatch
(exception e)
system.out.
println
("頭部資料是:"
+head)
;break
;case
'e':
scanner.
close()
; loop =
false
;break
;default
:break;}
} system.out.
println
("程式退出~");
}}class
arrayqueue
/** * 判斷佇列是否滿
*/public
boolean
isfull()
/** * 判斷佇列是否為空
*/public
boolean
isempty()
/** * 新增佇列
*/public
void
addarrayqueue
(int n)
rear++
; array[rear]
= n;
}/**
* 從佇列取資料
*/public
intgetarrayqueue()
front++
;return array[front];}
/** * 顯示所有佇列資料
*/public
void
showqueue()
for(
int i =
0; i < array.length; i++)}
/** * 顯示數頭部,非取
*/public
intheadqueue()
return array[front+1];}}
可參考:思路:
**:
public
class
circlearrayqueuedemo
catch
(exception e)
break
;case
'h':
int head =0;
trycatch
(exception e)
system.out.
println
("頭部資料是:"
+ head)
;break
;case
'e':
scanner.
close()
; loop =
false
;break
;default
:break;}
} system.out.
println
("程式退出~");
}}class
circlearray
/** * 判斷佇列是否滿
*/public
boolean
isfull()
/** * 判斷佇列是否為空
*/public
boolean
isempty()
/** * 新增佇列
*/public
void
addarrayqueue
(int n)
array[rear]
= n;
rear =
(rear +1)
% maxsize;
}/**
* 從佇列取資料
*/public
intgetarrayqueue()
int value = array[front]
; front =
(front +1)
% maxsize;
return value;
}/**
* 顯示所有佇列資料
*/public
void
showqueue()
for(
int i = front; i < front +
size()
; i++)}
/** * 顯示數頭部,非取
*/public
intheadqueue()
return array[front];}
/** * 求出當前佇列有效資料
*/public
intsize()
}
資料結構與演算法 2 迴圈佇列
佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列的資料元素又稱為佇列元素。在佇列中插入乙個佇列元素稱為入隊,從佇列中刪除乙個佇列元素...
資料結構與演算法 佇列
學習了好長 一段時間的資料結構,由於時間關係一直沒有寫部落格。這次打算將這段時間的學習內容寫下來做個整理。佇列作為線性結構的一種,其實用性不用多說。這裡總結下兩種結構的佇列實現。迴圈佇列 先列下以順序表結構形成的普通順序佇列存在的問題 隊頭不斷刪除元素,將使佇列的頭部空出單元 隨著刪除 插入的進行,...
資料結構與演算法 佇列
佇列 佇列與棧不同,它是一種先進先出的結構 實現 1 陣列 2 鍊錶 記錄的資料 1 隊首位置 第乙個元素的位置 2 隊尾位置 最後乙個元素的位置 3 佇列大小 size 佇列操作 entryqueue 入隊 exitqueue 出隊 isqueueempty 隊列為空 isqueuefull 佇列...