java資料結構 環形佇列

2021-08-27 05:49:17 字數 1631 閱讀 3067

arrayqueue存在乙個問題,假設當尾部插入元素滿了,頭部又刪掉了一些元素,這種情況下,就誤認為空間滿了,造成了假溢位,實際上頭部刪除了元素留出了空間。這時候環形佇列就解決了這樣的乙個問題,環形佇列的front指標始終指向當前佇列的最後位置;end指標始終指向第乙個元素的前乙個位置為-1,儲存元素的時候頭部和尾部都可以相互移動,而不必造成假溢位現象,節省了記憶體空間。如下:

1、構造方法

class circlequeue 

public circlequeue(int length)

}

2、新增佇列

/**

* 插入元素

*/public void add(int value)

if (isempty())

if ((end == queue.length - 1))

queue[++end] = value;

elements++;

}

3、刪除佇列

/**

* 刪除元素

*/public void delete()

queue[front] = -1;

front++;

elements--;

}

4、檢視佇列元素

/**

* 檢視佇列

*/public void display()

for (int i = 0; i < queue.length; i++) else

}system.out.println();

}

5、檢視隊頭

/**

* 檢視隊頭

*/public long getfront()

return queue[front];

}

6、檢視隊尾

/**

* 檢視隊尾

*/public long getend()

return queue[end];

}

7、檢視佇列元素個數

/**

* 檢視佇列裡面幾個元素

*/public int size()

8、佇列是否為空

/**

* 佇列是否為空

*/public boolean isempty()

9、佇列是否滿了

/**

* 佇列是否滿了

*/public boolean isfull()

資料結構之佇列和環形佇列

佇列實現 1.佇列是一種有序列表,遵循先進先出的原則。1.陣列模擬佇列,分別有隊頭和隊尾指標,從 1開始,進隊時隊尾指標自增,出隊時隊頭指標自增,隊頭是指向第乙個資料的前乙個位置。示意圖如下 package array public class queuearray 使用陣列模擬佇列 編寫乙個arr...

資料結構 陣列模擬環形佇列

一 用陣列模擬佇列時,要考慮到復用的效果,所以用環形佇列來表示 二 陣列模擬環形佇列中 往佇列裡新增資料 思路 先判斷佇列是否為滿,rear 1 maxsize front 將資料加入佇列,arr rear n 將隊尾指標往後移,rear要取模,rear rear 1 maxsize 三 往佇列裡取...

資料結構 陣列模擬環形佇列

front指向佇列的第乙個元素,且front的初始值為0 若不留有空位置,rear指向佇列的末尾元素的下乙個位置,會導致隊滿的時候與隊空的時候判斷條件會是一樣的,都是rear front 當佇列滿時,條件是 rear 1 maxsize front 隊列為空的條件,rear front 這樣分析時,...