資料結構之 佇列 複習

2021-07-13 20:40:19 字數 1520 閱讀 3293

佇列是先進先出的線性表;

佇列由於是線性表,因此也有順序儲存和鏈式儲存兩種實現方式;

一、順序儲存實現

由於佇列的特性是:從隊尾新增,從對頭刪除,因此如果讓陣列的尾部用作隊尾,陣列的頭部用作隊頭,則刪除元素時,時間複雜度為o(n);

因此我們需要用迴圈陣列實現,並且維護兩個屬性 front、rear,front

用來記錄隊頭的位置,

rear

這樣能夠充分利用陣列的空間,但是預先規定了空間就不能再改變;

**實現如下:

package org.xiazdong.list;

public class myarrayqueue

if(length==t.length)

length++;

t[rear] = e;

rear = (rear+1)%t.length;

} public t remove() throws exception

t e = t[front];

length--;

front = (front + 1)%t.length;

return e;

} public int getsize()

}class queueoverflowexception extends exception

@override

public string getmessage() }

class queueoffflowexception extends exception

@override

public string getmessage()

}

二、鏈式儲存實現

鏈式儲存簡單的說就是單鏈表+front、rear指標;

front

指向頭結點,

rear

指向最後乙個節點;

回顧一下頭結點的定義:不具有任何意義的節點,為了操作單鏈表方便而使用;

**實現如下:

package org.xiazdong.list;

public class mylistqueue

node n = new node(e,null);

rear.next = n;

rear = n;

front.elem++;

} public t remove() throws exception

t e = front.next.elem;

front.next = front.next.next;

front.elem--;

if(front.elem==0)

return e;

} class node

public node(t elem, node next)

} class beginnode extends node

}}

複習 資料結構 棧和佇列

鏈佇列 include include define elemtype char define maxsize 100 typedef struct node 定義節點型別 snode typedef struct lqueue void initqueue lqueue qu void enque...

資料結構複習 棧和佇列

棧是一種只能在一端進行插入或刪除操作的線性表 棧的最主要特點是後進先出 lifo n個不同的元素進棧,其出棧次序總數為 catalan number c 2n nn 1 frac n 1c2n n typedef elemtype int typedef struct 共享棧 如果要用到兩個相同型別...

資料結構之佇列

八 佇列 鏈式佇列 鍊錶實現 隊尾 rear 隊首 front 靜態佇列 陣列實現 必須是迴圈佇列 需要幾個引數來確定,各引數含義 1 佇列初始化 front和rear值都是0 2 佇列非空 front代表佇列第乙個元素 rear代表佇列最後乙個元素的 下乙個元素 3 佇列空 front和rear相...