一.定義
雙端佇列是限定插入和刪除操作在表的兩端進行的線性表,是一種具有佇列和棧的性質的資料結構。
雙端佇列中的元素可以從兩端進隊和出隊,其限定插入和刪除操作在表的兩端進行。
push(x,d):將元素x插入到雙端佇列d的頭;
pop(d):刪除雙端佇列d的頭元素,並返回;
inject(x,d):將元素x插入到雙端佇列d的尾部;
eject(d):刪除雙端佇列d的尾部元素,並返回。
bool push
( elementtype x, deque d )
;elementtype pop
( deque d )
;bool inject
( elementtype x, deque d )
;elementtype eject
( deque d )
;
其中deque結構定義如下:
typedef
int position;
typedef
struct qnode *ptrtoqnode;
struct qnode
;typedef ptrtoqnode deque;
注意:push和inject應該在正常執行完操作後返回true,或者在出現非正常情況時返回false。當front和rear相等時隊列為空,pop和eject必須返回由裁判程式定義的error。
**
bool push
( elementtype x, deque d )
else
}elementtype pop
( deque d )
else
} bool inject
( elementtype x, deque d )
else
}elementtype eject
( deque d )
else
}
注意點:d -> front 和 d -> rear - 1時要保證下標為正-1過後要+q -> maxsize 再對q -> maxsize進行求餘操作 PTA 雙端佇列 資料結構
push x,d 將元素x插入到雙端佇列d的頭 pop d 刪除雙端佇列d的頭元素,並返回 inject x,d 將元素x插入到雙端佇列d的尾部 eject d 刪除雙端佇列d的尾部元素,並返回。函式介面定義 bool push elementtype x,deque d elementtype p...
PTA複習 習題3 13 雙端佇列
bool push elementtype x,deque d elementtype pop deque d bool inject elementtype x,deque d elementtype eject deque d 其中deque結構定義如下 typedef int position...
佇列 雙端佇列
1.佇列 佇列是遵循先進先出 fifo,也稱為先來先服務 原則的一組有序的項。佇列在尾部新增新 元素,並從頂部移除元素。最新新增的元素必須排在佇列的末尾 class queue 向佇列新增元素 enqueue element 檢查佇列是否為空並獲取它的長度 isempty 從佇列移除元素 deque...