直接上**,自已已經親測過:
/**
* 陣列實現佇列
* author : bluesky 2019.11.01
* 思路:
* 1、利用雙指標分別指向頭結點和尾結點來控制先進先出的特性。
* 2、每次出隊操作,將後面的資料向前移一位,來解決頭和尾指標向後移動以至於不能插入新資料的問題,但是時間複雜度比較高,出隊時間複雜度會由o(1) 變為 o(n),不建議採用。
* 3、每次入隊操作,判斷如果尾結點達到陣列最後面,就把頭結點和尾節點所有資料移動到陣列最前面。時間複雜度還是o(1) 。
*/public
class
arrayqueuemain
public
static
class
arrayqueue
/** * 入隊v1
*/public boolean addv1
(string data)
array[tail]
= data;
++tail;
return
true;}
/** * 入隊v2
*/public boolean addv2
(string data)
// 資料遷移
system.out.
println
("data move");
for(
int i =
0; i< tail - head; i++
)// 遷移後需要將指標復位
tail = capacity - head;
head =0;
system.out.
println
("move after tail:"
+ tail)
;// 列印
for(
int i =
0; i< capacity; i++)}
array[tail]
= data;
++tail;
for(
int i =
0; i< capacity; i++
)return
true;}
/** * 出隊
*/public string poll()
string res = array[head]
;++head;
return res;}}
}
資料結構和演算法 2 之陣列實現佇列
學習資料結構和演算法的日常demo 佇列介紹 佇列是乙個有序列表,可以用陣列或是鍊錶實現 遵循先進先出的原則 陣列模擬佇列思路 實現 public class arrayqueuedemo catch exception e break case h trycatch exception e bre...
鹹魚學資料結構和演算法 佇列(陣列實現)
目錄 一 佇列介紹 二 陣列模擬佇列介紹 三 陣列模擬佇列 實現 將尾指標往後移 rear 1 當front rear 空 若尾指標 rear 小於佇列的最大下標 maxsize 1,則將資料存入 rear所指的陣列元素中,否則無法存入資料。rear maxsize 1 佇列滿 system.out...
資料結構 佇列之C陣列實現
佇列 是一種限定操作的線性表,它只能在表的 一段插入,另外一段取出 所以也稱為 先進先出 資料結構 fifo first in first out c 如下 有小bug不想調了,作為參考即可 include define maxsize 5 typedef int elemtype typedef ...