佇列是一種特殊的
線性表,特殊之處在於它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。
順序佇列:
#ifndef __sqqueue_h__
#define __sqqueue_h__
#include "error.h"
#define true 1
#define false 0
#define size 10
typedef int queuedata;
typedef struct _queue
queue;
// 置空隊
int initqueue (queue *q);
// 判隊空否
int queueempty (queue *q);
// 判隊滿否
int queuefull (queue *q);
// 進隊
int enqueue (queue *q, queuedata x);
// 出隊
int dequeue (queue *q, queuedata *x);
// 取隊頭
int getfront (queue *q, queuedata *x);
#endif // __sqqueue_h__
#include "sqqueue.h"
int initqueue (queue *q)
// 置空隊
q->front = 0;
q->rear = 0;
return true;
}int queueempty (queue *q)
return q->front == q->rear;
}int queuefull (queue *q)
return q->front == (q->rear+1)%size;
} int enqueue (queue *q, queuedata x)
if (queuefull(q))
q->rear = (q->rear+1) % size;
q->data[q->rear] = x;
return true;
}int dequeue (queue *q, queuedata *x)
if (queueempty(q))
q->front = (q->front + 1) % size;
*x = q->data[q->front];
return true;
}int getfront (queue *q, queuedata *x)
if (queueempty(q))
int index = (q->front + 1) % size;
*x = q->data[index];
return true;
}
#include "sqqueue.h"
#include int main()
int i;
char str[50];
for (i = 0; i < 10; i++) }
int x;
for (i = 0; i < 10; i++)
printf ("x = %d\n", x); }
return 0;
}
資料結構 順序佇列
1 佇列簡稱隊,它是一種操作受限的線性表,其限制為在標的一段進行插入,而在包的另一端進行刪除。把進行插入的一端稱為隊尾 rear 把進行刪除的一端稱作隊頭或隊首 front 向佇列中插入新元素稱為進隊或入隊,新的元素進隊後就成為新的隊尾元素 從佇列中刪除元素稱為出隊或離隊,元素出隊後,其直接後繼元素...
資料結構 順序佇列
rear m時,假溢位解決方法 迴圈佇列 c 實現 include include using namespace std define ok 1 define error 1 define overflow 2 typedef int status typedef int qelemtype de...
資料結構之佇列 順序佇列
列的特點是 先到先辦 fifo first in first out 可將佇列形象地比作管道 模擬買火車票的佇列實現 include include define n 100 最大有多少個 define datatype char 定義資料型別,定義佇列,struct queue typedef s...