Java 迴圈佇列的實現

2021-08-25 08:31:17 字數 1104 閱讀 8167

出處:

佇列(queue)是限定只能在一端插入、另一端刪除的線性表。允許刪除的一端叫做隊頭(front),允許插入的一端叫做隊尾(rear),沒有元素的佇列稱為「空佇列」。

佇列具有先進先出(fifo)的特性。

在普通順序佇列中,入隊的操作就是先將尾指標rear右移乙個單位,然後將元素值賦值給rear單位。出隊時,則是頭指標front後移乙個單位。像這樣進行了一定數量的入隊和出隊操作後,可能會出現這樣的情況:

尾指標rear已指到陣列的最後有乙個元素,即rear==maxlen-1,此時若再陣列的前面部分可能還有很多閒置空間,即這種溢位並非是真的沒有可用的儲存空間,故稱這種溢位現象為「假溢位」。顯然,必須要解決這一塊假溢位的問題,否則順序佇列就沒有太多使用價值。

迴圈佇列的儲存結構,頭、尾指標都和普通順序佇列相同。不同的只是將佇列視為「環狀結構」,即data[0]為緊接著data[maxlen-1]的單元,為相鄰的元素,首位成為乙個環。結構如下:

全域性變數:定義佇列長度

static int maxlen;
迴圈佇列基本資料結構的實現:

static class myqueue

}

判空函式

public boolean isempty() 

return false;

}

判滿函式

public boolean isfull()

else

}

取隊頭元素

public void queuefront(int getfront)

else

}

入隊

public void enqueue(int endata) 

else

}

出隊

public void outqueue()  else 

}

java實現迴圈佇列

佇列 佇列是只允許在一端進行插入操作,在另一端進行刪除操作的線性表。允許插入的一端稱為隊尾,允許刪除的一端稱為對頭 先進先出的特性 1.順序儲存的佇列應該把佇列的所有元素都儲存在陣列的前n個單元,此時入隊的操作相當於追加,不需要移動元素 但是出隊操作的時間開銷為o n 2.放寬佇列的所有元素必須儲存...

java佇列的迴圈陣列實現

package com.yy.queue 迴圈陣列佇列 author public class queue public queue 獲取當前佇列長度 public int getqueuesize else return currentsize 入隊操作 public void enqueue o...

Java實現迴圈佇列和鏈式佇列

佇列的定義 佇列是一種只允許一端進行插入操作,在另一端進行刪除操作的線性表。允許插入的一端稱為稱為隊尾,刪除的一段是隊頭。想象你去排隊購買車票時,排著乙個很長的隊,排在最前面的人買完票走了,這個操作就稱為出隊操作,而在佇列的後面又來乙個人排在後面,這個操作就稱為入隊操作。乙個普通的佇列 對於乙個普通...