6 7 另類迴圈佇列(20 分)

2021-08-11 17:06:55 字數 1312 閱讀 5920

6-7 另類迴圈佇列(20 分)

如果用乙個迴圈陣列表示佇列,並且只設佇列頭指標front,不設尾指標rear,而是另設count記錄佇列中元素個數。請編寫演算法實現佇列的入隊和出隊操作。

函式介面定義:

bool addq( queue q, elementtype x );

elementtype deleteq( queue q );

其中queue結構定義如下:

typedef int position;

typedef struct qnode *ptrtoqnode;

struct qnode ;

typedef ptrtoqnode queue;

注意:如果佇列已滿,addq函式必須輸出「queue full」並且返回false;如果佇列是空的,則deleteq函式必須輸出「queue empty」,並且返回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 queue;

queue createqueue( int maxsize )

bool addq( queue q, elementtype x );

elementtype deleteq( queue q );

operation getop(); /* 裁判實現,細節不表 */

int main()

}return

0;}

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

bool addq(queue q,elementtype x)

q->count++;

q->data[(q->front+q->count)%q->maxsize]=x;

return true;

} elementtype deleteq(queue q)

q->count–;

q->front=(q->front+1)%q->maxsize;

return q->data[q->front];

}

6 3 另類迴圈佇列 (20 分

如果用乙個迴圈陣列表示佇列,並且只設佇列頭指標front,不設尾指標rear,而是另設count記錄佇列中元素個數。請編寫演算法實現佇列的入隊和出隊操作。函式介面定義 bool addq queue q,elementtype x elementtype deleteq queue q 其中queu...

3 12 另類迴圈佇列 20分

如果用乙個迴圈陣列表示佇列,並且只設佇列頭指標front,不設尾指標rear,而是另設count記錄佇列中元素個數。請編寫演算法實現佇列的入隊和出隊操作。函式介面定義 bool addq queue q,elementtype x elementtype deleteq queue q 其中queu...

6 11 另類迴圈佇列 20分

如果用乙個迴圈陣列表示佇列,並且只設佇列頭指標front,不設尾指標rear,而是另設count記錄佇列中元素個數。請編寫演算法實現佇列的入隊和出隊操作。函式介面定義 bool addq queue q,elementtype x elementtype deleteq queue q 其中queu...