資料結構---佇列(順序表實現)
阿新 • • 發佈:2018-12-31
一、理論知識
待續
二、程式碼實現
1.佇列結構體定義
typedef int ElemType;
typedef struct Queue
{
ElemType* pBase;
int size;
ElemType front;
ElemType rear;
int length;
}*pQueue;
2.初始化佇列
void initQueue(pQueue qu,ElemType length) { qu->size = 0; qu->length = length; qu->pBase = new ElemType[qu->length]; qu->front = -1; qu->rear = -1; }
3.判斷佇列是否為空
bool isEmpty(pQueue qu)
{
return ((qu->front == -1) && (qu->rear == -1));
}
4.判斷佇列是否已滿
bool isFully(pQueue qu)
{
return (qu->rear==qu->length-1);
}
5.壓佇列
void pushQueue(pQueue qu, ElemType data) { if (isFully(qu)) return; qu->pBase[qu->rear+1] = data; qu->rear++; qu->size++; }
6.出佇列
ElemType popQueue(pQueue qu)
{
if (isEmpty(qu))
return -1;
ElemType popData = qu->pBase[qu->front + 1];
for (int i = 0; i < qu->size; ++i)
qu->pBase[i] = qu->pBase[i + 1];
qu->size--;
qu->rear--;
return popData;
}
7.列印佇列
void showQueue(pQueue qu) { if (isEmpty(qu)) { printf("棧為空,無法列印!\n"); return; } for (int i = 0; i < qu->size; ++i) printf("%d->", qu->pBase[i]); }