佇列是乙個有序列表
,可以用陣列或是鍊錶來實現,它遵循先進先出
原則
佇列本身是有序列表,若使用陣列的結構來儲存佇列的資料:
//陣列實現佇列
class
arrayqueue
//判斷佇列是否滿
//滿返回true,沒滿返回false
public
boolean
isfull()
//判斷佇列是否為空他,頭尾相等為空
//空返回true,非空返回false
public
boolean
isempty()
//新增資料到佇列
public
void
addqueue
(int data)
//tail後移
tail ++
; arr[tail]
= data;
}//出隊獲取資料
public
intgetdata()
head ++
;return arr[head];}
//顯示佇列所有資料
public
void
showqueue()
for(
int i =
0; i < arr.length; i++)}
//顯示佇列的頭
public
intheadqueue()
return arr[head +1]
;}}
class
circlearray
//判斷佇列是否滿
//滿返回true,沒滿返回false
public
boolean
isfull()
//判斷佇列是否為空他,頭尾相等為空
//空返回true,非空返回false
public
boolean
isempty()
//新增資料到佇列
public
void
addqueue
(int data)
//直接將資料加入
arr[tail]
= data;
//將tail後移
tail =
(tail +1)
% maxsize;
}//出隊獲取資料
public
intgetdata()
//這裡要分析出head是指向佇列的第乙個元素
//先把head對應的值保留到乙個臨時變數
//head後移
//返回臨時變數
int value = arr[head]
; head =
(head +1)
% maxsize;
return value;
}//求出當前佇列有效資料個數
public
intsize()
//顯示佇列所有資料
public
void
showqueue()
//從head開始遍歷
for(
int i = head; i < head +
size()
; i++)}
//顯示佇列的頭
public
intheadqueue()
return arr[head];}
}
模擬實現「佇列」資料結構
佇列也是一種特殊的資料結構,原則是先進先出 fifo 只允許在一端插入,稱為 隊尾 在另一端刪除,稱為 隊頭 佇列可以用陣列 鍊錶實現,但是用鍊錶實現更優。以下就是使用鍊錶實現的。queue.h pragma once include commen.h 佇列 單鏈表實現 typedef int qd...
模擬實現「棧」資料結構
棧 是一種資料結構 特殊的線性表。原則是後進先出 lifo 只允許在固定的一一端進行插入 刪除,稱為 棧頂 而另一端稱為 棧底 棧 可以用陣列 鍊錶來模擬實現,但是陣列方式更優,以下我們就使用陣列來模擬實現。stack.h pragma once include commen.h 棧 陣列實現 ty...
資料結構 陣列模擬環形佇列
一 用陣列模擬佇列時,要考慮到復用的效果,所以用環形佇列來表示 二 陣列模擬環形佇列中 往佇列裡新增資料 思路 先判斷佇列是否為滿,rear 1 maxsize front 將資料加入佇列,arr rear n 將隊尾指標往後移,rear要取模,rear rear 1 maxsize 三 往佇列裡取...