push(x,d):將元素x插入到雙端佇列d的頭;函式介面定義:pop(d):刪除雙端佇列d的頭元素,並返回;
inject(x,d):將元素x插入到雙端佇列d的尾部;
eject(d):刪除雙端佇列d的尾部元素,並返回。
bool push( elementtype x, deque d );其中deque結構定義如下:elementtype pop( deque d );
bool inject( elementtype x, deque d );
elementtype eject( deque d );
typedef int position;注意:push和inject應該在正常執行完操作後返回true,或者在出現非正常情況時返回false。當front和rear相等時隊列為空,pop和eject必須返回由裁判程式定義的error。typedef struct qnode *ptrtoqnode;
struct qnode ;
typedef ptrtoqnode deque;
裁判測試程式樣例:
#include
#include
#define error -1
typedef
int elementtype;
typedef
enum
operation;
typedef
enum
bool;
typedef
int position;
typedef
struct qnode *ptrtoqnode;
struct qnode
;typedef ptrtoqnode deque;
deque createdeque
(int maxsize )
bool push
( elementtype x, deque d )
;elementtype pop
( deque d )
;bool inject
( elementtype x, deque d )
;elementtype eject
( deque d )
;operation getop()
;/* 裁判實現,細節不表 */
void
printdeque
( deque d )
;/* 裁判實現,細節不表 */
intmain()
}return0;
}/* 你的**將被嵌在這裡 */
輸入樣例:
3pop
inject 1
popeject
push 2
push 3
eject
inject 4
inject 5
inject 6
push 7
popend
輸出樣例:
deque is empty!
1 is out
deque is empty!
2 is out
deque is full!
deque is full!
3 is out
inside deque: 4 5
bool push
( elementtype x, deque d )
//在頭處插入
d->front=
(--d->front+d->maxsize)
%d->maxsize;
d->data[d->front]
=x;return true;
}bool inject
( elementtype x, deque d )
//在尾部插入
//d->rear=(++d->rear)%d->maxsize;
//d->data[d->rear]=x;
//想知道為什麼錯了嗎
//因為為空的時候是頭等於尾所以在頭部插入是頭往前走在尾部插入時尾就不用動了插完之後尾巴再後移
d->data[d->rear]
=x;d->rear=
(++d->rear)
%d->maxsize;
return true;
}elementtype pop
( deque d )
//在頭部刪除
int x=d->data[d->front]
; d->front=
(++d->front+d->maxsize)
%d->maxsize;
return x;
}elementtype eject
( deque d )
//在尾部刪除
//int x=d->data[d->rear];
// d->rear=(--d->rear+d->maxsize)%d->maxsize;
//想知道為啥又錯了嗎?
//在尾部插入的時候尾部指標又向前移動了乙個所以要先移回去
d->rear=
(--d->rear+d->maxsize)
%d->maxsize;
int x=d->data[d->rear]
;return x;
}
雙端佇列 (25 分
push x,d 將元素x插入到雙端佇列d的頭 pop d 刪除雙端佇列d的頭元素,並返回 inject x,d 將元素x插入到雙端佇列d的尾部 eject d 刪除雙端佇列d的尾部元素,並返回。函式介面定義 bool push elementtype x,deque d elementtype p...
6 8 雙端佇列 25分
bool push elementtype x,deque d elementtype pop deque d bool inject elementtype x,deque d elementtype eject deque d 其中deque結構定義如下 typedef int position...
習題3 13 雙端佇列 25分
bool push elementtype x,deque d elementtype pop deque d bool inject elementtype x,deque d elementtype eject deque d 其中deque結構定義如下 typedef int position...