04-隊列

順序循環(huán)隊列

隊列是一個先進先出的有序列表诺祸,可以用數(shù)組或鏈表來實現(xiàn)

使用數(shù)組實現(xiàn)循環(huán)隊列:

  1. front指向隊頭元素往枣,初始值為0
  2. rear指向隊尾的后一個位置望侈,初始值為0
  3. 隊滿:front == (rear + 1) % maxSize
  4. 隊空:rear == front
  5. 有效數(shù)據(jù)量:(rear + maxSize - front) % maxSize

由于在rear后空出了一個空間來便于判斷隊滿辩昆,因此最多存儲maxSize個元素

循環(huán)隊列代碼實現(xiàn):

public class CircularQueue {
    // 數(shù)組最大容量
    private int maxSize;
    // front指向隊頭元素盲再,初始值為0
    private int front;
    // rear指向隊尾的后一個位置,初始值為0
    private int rear;
    private int[] arrayQueue;

    public CircularQueue(int maxSize) {
        this.maxSize = maxSize;
        arrayQueue = new int[maxSize];
        this.front = 0;
        this.rear = 0;
    }

    // 判斷隊列是否滿
    public boolean isFull() {
        return front == (rear + 1) % maxSize;
    }

    // 判斷隊列是否空
    public boolean isEmpty() {
        return rear == front;
    }

    // 獲取有效數(shù)據(jù)量
    public int getValidSize() {
        return (rear + maxSize - front) % maxSize;
    }

    // 添加數(shù)據(jù)到隊尾棍鳖,返回值為是否添加成功
    public boolean enqueue(int data) {
        if (isFull())
            return false;
        arrayQueue[rear] = data;
        // 將rear后移
        rear = (rear + 1) % maxSize;
        return true;
    }

    // 移除隊頭數(shù)據(jù)炮叶,返回值為是否移除成功
    public boolean dequeue() {
        if (isEmpty())
            return false;
        // 將front后移
        front = (front + 1) % maxSize;
        return true;
    }

    // 獲取隊頭數(shù)據(jù)
    public int getFront() {
        if (isEmpty()) {
            // 通過拋異常來處理隊空的情況
            throw new RuntimeException("隊列為空");
        }
        return arrayQueue[front];
    }

    // 遍歷隊列所有數(shù)據(jù)
    public void showQueue() {
        if (isEmpty()) {
            System.out.println("隊空");
            return;
        }
        // 從front開始遍歷
        for (int i = front; i < front + getValidSize(); i++) {
            System.out.printf("ArrayQueue[%d] = %d\n", i % maxSize, arrayQueue[i % maxSize]);
        }
    }
}
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市渡处,隨后出現(xiàn)的幾起案子镜悉,更是在濱河造成了極大的恐慌,老刑警劉巖医瘫,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件侣肄,死亡現(xiàn)場離奇詭異,居然都是意外死亡醇份,警方通過查閱死者的電腦和手機稼锅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來僚纷,“玉大人矩距,你說我怎么就攤上這事〔澜撸” “怎么了锥债?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長痊臭。 經(jīng)常有香客問我哮肚,道長,這世上最難降的妖魔是什么广匙? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任允趟,我火速辦了婚禮,結果婚禮上鸦致,老公的妹妹穿的比我還像新娘潮剪。我一直安慰自己,他們只是感情好蹋凝,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布鲁纠。 她就那樣靜靜地躺著总棵,像睡著了一般鳍寂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上情龄,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天迄汛,我揣著相機與錄音捍壤,去河邊找鬼。 笑死鞍爱,一個胖子當著我的面吹牛鹃觉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播睹逃,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼盗扇,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了沉填?” 一聲冷哼從身側響起疗隶,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎翼闹,沒想到半個月后斑鼻,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡猎荠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年坚弱,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片关摇。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡荒叶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拒垃,到底是詐尸還是另有隱情停撞,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布悼瓮,位于F島的核電站戈毒,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏横堡。R本人自食惡果不足惜埋市,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望命贴。 院中可真熱鬧道宅,春花似錦、人聲如沸胸蛛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽葬项。三九已至泞当,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間民珍,已是汗流浹背襟士。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工盗飒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人陋桂。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓逆趣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親嗜历。 傳聞我的和親對象是個殘疾皇子宣渗,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 棧是限定僅在表尾進行插入和刪除操作的線性表。表尾端稱為棧頂梨州,表頭端稱為棧底落包。不含元素的空表稱為空棧。棧是后進先出的...
    yinxmm閱讀 1,819評論 0 0
  • 方式均根據(jù)先進先出的思想摊唇,按照雙指針的方式實現(xiàn)咐蝇;首先指針一 rear 代表了隊列尾端,每新增一個數(shù)據(jù)則放置在隊列尾...
    繭銘閱讀 308評論 0 0
  • 1.概念隊列是一種的數(shù)據(jù)結構巷查。即只能在一端進行插入有序,在另一端進行刪除操作的,由于隊列是一個有序列表,因此它可以用數(shù)...
    是淼子啊閱讀 138評論 0 0
  • 一岛请、稀疏數(shù)組 1. 應用場景和介紹 編寫的五子棋程序中旭寿,有存盤退出和繼續(xù)上盤的功能。 該二維數(shù)組的很多值都是默認值...
    曉風殘月1994閱讀 243評論 0 1
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月崇败,有人笑有人哭盅称,有人歡樂有人憂愁,有人驚喜有人失落后室,有的覺得收獲滿滿有...
    陌忘宇閱讀 8,536評論 28 53