資料結構順序佇列

2021-08-04 23:19:39 字數 1803 閱讀 5867

佇列是一種特殊的

線性表,特殊之處在於它只允許在表的前端(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...