Queue佇列的用法

2021-10-06 04:20:42 字數 3862 閱讀 9330

佇列是一種特殊的線性表,它只允許在表的前端進行刪除操作,而在表的後端進行插入操作。遵循的是先入先出的原則。

陣列的使用方法

使用陣列模擬佇列

一般來說,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 輸出現有元素的...