1 3 環形佇列

2022-07-06 00:54:09 字數 919 閱讀 7607

**實現

public class circlearrayqueuedemo 

} catch (exception e) }}

}class circlearrayqueue

public boolean isfull()

public boolean isempty()

public void addqueue(int value)

// 先在佇列尾賦值 ,再增加指標的值 取模還不會超出最大索引,相當於重置索引

array[this.rear] = value;

this.rear = (this.rear + 1) % maxsize;

}public int getqueue()

// 先取值 再增加指標的值 所以不能直接返回 需要臨時變數

int temp = array[front];

this.front = (this.front + 1) % maxsize;;

return temp;

}public void showqueue()

// 陣列中有效資料的個數(也就是佇列中有多少元素)(rear + maxsize - front) % maxsize

// 展示佇列中元素 需要展示從頭元素開始 ,遍歷多少個(佇列中有效元素的個數)

// 此處 % 為了計算在陣列中的實際位置

for (int i = this.front; i < this.front + size(); i++)

}public int size()

public int queuehead()

return this.array[front]; // 顯示隊首元素

}}

C語言應用3 環形佇列

環形佇列應用面廣,可以應用在第一講所講的at指令和盲區資料的傳輸。這裡我再講一些應用,對於一些支援透明傳輸的裝置,當連線建立成功後,資料就可以在兩個裝置之間快速傳輸,這時候如果直接處理資料,很容易出現接收資料的速度和裝置處理速度不匹配的情況,俗稱丟包。這時可以使用環形佇列,將資料儲存,等使用的時候,...

141 環形鍊錶

給定乙個鍊錶,判斷鍊錶中是否有環。高階 你能否不使用額外空間解決此題?乙個快指標走兩步 乙個慢指標走一步 如果相遇就有環 不然沒環 class solution def hascycle self,head type head listnode rtype bool index1 head inde...

1148環形石子合併

時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述在乙個圓形操場的四周擺放著n堆石子 n 100 現要將石子有次序地合併成一堆。規定每次只能選取相鄰的兩堆合併成新的一堆,並將新的一堆的石子數,記為該次合併的得分。編一程式,讀入石子堆數n及每堆的石子數 20 選擇一種合併石子的方...