6 8 雙端佇列 25分

2021-10-04 13:25:44 字數 1743 閱讀 8736

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;

注意:pushinject應該在正常執行完操作後返回true,或者在出現非正常情況時返回false。當frontrear相等時隊列為空,popeject必須返回由裁判程式定義的error

#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 ); /* 裁判實現,細節不表 */

int main()

}return 0;

}/* 你的**將被嵌在這裡 */

//前插:它的判斷條件上面已經說過啦,在前面插入,先移動再插入,

//用-1,表示指標像前面移動乙個單位,然後在該指標指向的位置進行插入

bool push( elementtype x, deque d )

}/*前刪:判斷條件:當頭指標和尾指標指向同乙個位置時,就說明是空的,為什麼呢,

因為尾指標一直指向的都是下乙個位置,一直是乙個空的。記錄此刻頭指標的位置上的數值,

然後向後面移動一位。返回數值。*/

elementtype pop( deque d )

}//後插:判斷條件和前插是一樣的,後面插入,先插入後移動,

//現在該尾指標指向的位置上進行插入,然後再把尾指標向後面移動一位。

bool inject( elementtype x, deque d )

}//後刪:判斷條件與前刪是一樣的。因為當前尾指標指向的位置的值是空的,

//所以先讓指標向前移動一位,獲取用該指標位置的值。

elementtype eject( deque d )

}

雙端佇列 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...

雙端佇列 (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...

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