佇列是一種特殊的線性表,它只允許在表的前端進行刪除操作,而在表的後端進行插入操作。遵循的是先入先出的原則。
陣列的使用方法
使用陣列模擬佇列
一般來說,front指向頭部,且指向頭部的前乙個位子
rear指向尾部(包含尾部的資料)
//使用陣列模擬佇列 編寫乙個arrayqueue
class
arrayqueue
//判斷佇列是否滿
public
boolean
issfull()
//判斷佇列是否為空
public
boolean
issempty()
//新增資料到佇列
public
void
addqueue
(int n)
else
}//獲取佇列的資料,出佇列
public
intgetqueue()
else
return arr[front];}
//顯示佇列的所有資料
public
void
showqueue()
for(
int ss:arr)
system.out.
println()
;}//顯示佇列的頭資料,不是取資料
public
intheadqueue()
return arr[front+1]
;//因為front是頭部的前乙個資料
}}
接著我們進行呼叫
arrayqueue arrayqueue=
newarrayqueue(3
);arrayqueue.
addqueue(3
);arrayqueue.
addqueue(1
);arrayqueue.
addqueue(3
);system.out.
println
(arrayqueue.
issempty()
);//false
system.out.
println
(arrayqueue.
issfull()
);//true
system.out.
println
(arrayqueue.
getqueue()
);//3 arrayqueue.
showqueue()
;//3 1 3
system.out.
println
(arrayqueue.
headqueue()
);//3
可能存在的問題:
1.目前陣列使用一次就不能用,沒有達到復用的效果
2.將這個陣列使用演算法,改進成乙個環形的佇列取模:%
集合的使用方法
linkedlist類實現了queue介面,因此我們可以把linkedlist當成queue來用。也可以將arraydeque類來當queue介面。
1.新增元素
新增元素可以使用add()、offer()方法來新增
add()方法,在queue上限時繼續新增,會丟擲異常。
offer()方法,在queue上限時繼續新增,會得到返回值false。
//暫時找不到怎麼設定上限(╯▔皿▔)╯
queue
queue=
newarraydeque
<
>()
;//queuequeue=new linkedlist<>();
queue.
offer
("1");
queue.
offer
("3");
queue.
add(
"4")
;for
(string q:queue)
2.刪除元素
刪除元素可以使用poll()、remove() 方法來刪除,他們都用來刪除第乙個元素,返回值為string。但是remove可以刪除指定元素,返回值為boolean型別
remove()方法,刪除空集合時,會丟擲異常
poll()方法,刪除空集合時,只是返回null
queue
queue=
newarraydeque
<
>()
;//queuequeue=new linkedlist<>();
queue.
offer
("1");
queue.
offer
("3");
queue.
add(
"4")
;boolean c=queue.
remove
("3");
system.out.
println
(c);
//true
string s=queue.
remove()
; system.out.
println
(s);
//1 string p=queue.
poll()
; system.out.
println
(p);
//4 string f=queue.
poll()
;// string d=queue.remove();
system.out.
println
(f);
//null 集合已經為空了
// system.out.println(d); //丟擲異常,因為remove不能繼續刪除了
3.查詢元素
查詢元素可以使用peek()、element(),他們用來查詢首元素
peek()方法,在隊列為空的時候查詢,返回值為null
element()方法,在隊列為空的時候查詢,會丟擲異常
queue
queue=
newarraydeque
<
>()
;//queuequeue=new linkedlist<>();
queue.
offer
("1");
queue.
offer
("3");
queue.
add(
"4")
; queue.
poll()
; system.out.
println
(queue.
peek()
);//3 system.out.
println
(queue.
element()
);//3 queue.
poll()
; queue.
poll()
; system.out.
println
(queue.
peek()
);//null
// system.out.println(queue.element()); //丟擲異常
C 佇列queue的用法
c 佇列queue模板類的定義在標頭檔案中,queue 模板類需要兩個模板引數,乙個是元素型別,乙個容器型別,元素型別是必要的,容器型別是可選的,預設為deque 型別。c 佇列queue是一種容器介面卡,它給予程式設計師一種先進先出 fifo 的資料結構。c 佇列queue類成員函式如下 back...
C 中queue(佇列)的用法
include include include include include 或 include queue include queue 定義乙個queue的變數queuem 檢視是否為空範例m.empty 是的話返回1,不是返回0 從已有元素後面增加元素m.push 輸出現有元素的個數m.siz...
C 中queue(佇列)的用法
include include include 呼叫的時候要有標頭檔案 include或 include include include 詳細用法 定義乙個queue的變數 queuem 檢視是否為空範例 m.empty 是的話返回1,不是返回0 從已有元素後面增加元素 m.push 輸出現有元素的...