PTA 雙端佇列

2021-10-22 22:34:18 字數 1147 閱讀 4564

一.定義

雙端佇列是限定插入和刪除操作在表的兩端進行的線性表,是一種具有佇列和棧的性質的資料結構。

雙端佇列中的元素可以從兩端進隊和出隊,其限定插入和刪除操作在表的兩端進行。

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...