資料結構與演算法 佇列

2021-10-12 17:43:53 字數 1925 閱讀 6018

銀行取號排隊,先到先處理

/**

* 陣列模擬佇列,列表使用一次就不可使用,達不到復用的效果

*/public class arrayqueue

//佇列已滿

public boolean iffull(

) //隊列為空

public boolean isempty(

) //新增資料

public void addqueue(int data)

this.rear++;

arr[rear]

=data;

} //取出乙個資料

public int getqueue(

) this.front++;

return arr[front];}

//檢視佇列所有元素

public void showqueue(

)for

(int i=0; i} //檢視頭部元素,不取出

public int headqueue(

)return arr[this.front+1];}

public static void main(string[

] args)

catch (exception e)

break

;case

'h':

try catch(exception e)

break

;case

'e':

loop =

false

; system.out.printf(

"系統退出");

break;}

}}}

/**

* 陣列模擬迴圈佇列,犧牲乙個位置

* @author xiezf

* */

public class circlearrayqueue

public boolean iffull(

) public boolean isempty(

) //新增資料

public void addqueue(int data)

arr[rear]

=data;

this.rear =

(this.rear+1) % maxsize;

} //front指向佇列的第乙個元素

//1、先把front對應的值保留到乙個臨時變數

//2、將front後移,考慮取模

//3、將臨時保留的變數返回

public int getqueue(

) int temp = arr[front]

; this.front =

(this.front + 1) % maxsize;

return temp;

} //從front開始遍歷,

public void showqueue(

)for

(int i=front; i); i++)

} //求出當前佇列的有效個數

public int size(

) public int headqueue(

)return arr[this.front];}

public static void main(string[

] args)

catch (exception e)

break

;case

'h':

try catch(exception e)

break

;case

'e':

loop =

false

; system.out.printf(

"系統退出");

break;}

}}}

資料結構與演算法 佇列

學習了好長 一段時間的資料結構,由於時間關係一直沒有寫部落格。這次打算將這段時間的學習內容寫下來做個整理。佇列作為線性結構的一種,其實用性不用多說。這裡總結下兩種結構的佇列實現。迴圈佇列 先列下以順序表結構形成的普通順序佇列存在的問題 隊頭不斷刪除元素,將使佇列的頭部空出單元 隨著刪除 插入的進行,...

資料結構與演算法 佇列

佇列 佇列與棧不同,它是一種先進先出的結構 實現 1 陣列 2 鍊錶 記錄的資料 1 隊首位置 第乙個元素的位置 2 隊尾位置 最後乙個元素的位置 3 佇列大小 size 佇列操作 entryqueue 入隊 exitqueue 出隊 isqueueempty 隊列為空 isqueuefull 佇列...

演算法與資料結構 佇列

adt queue d d 資料關係 r r a i d,i 2,3,n r 約定a 1a 1 a1 端為隊首,a na n an 端為隊尾。基本操作 create 建立乙個空佇列 emptyque 若隊列為空,則返回true,否則返回false insertque x 向隊尾插入元素x delet...