**如下:
#include
#include
#include
#include
#define maxsize 10
typedef
int elemtype;
typedef
struct
queue;
//初始化操作,建立乙個空佇列q;
void
initqueue
(queue *q)
;//若佇列q存在,則銷毀他
void
destroyqueue
(queue *q)
;//將佇列q清空
void
clearqueue
(queue *q)
;//若隊列為空,返回true,否則返回false
bool queueempty
(queue q)
;//若佇列存在且非空,用e返回佇列的對頭元素
void
gethead
(queue q, elemtype *e)
;//若佇列q存在,插入新元素e到佇列q中並成為隊尾元素
bool enqueue
(queue *q, elemtype e)
;//刪除佇列q中對頭元素,並用e返回其值
bool dequeue
(queue *q, elemtype *e)
;//返回佇列q的元素個數
intqueuelength
(queue q)
;//將佇列中所有元素出列
void
queueshow
(queue *q)
;int
main()
void
initqueue
(queue *q)
else
}bool enqueue
(queue *q, elemtype e)
q->data[q->rear]
= e;
q->rear =
(q->rear +1)
% maxsize;
return true;
}bool dequeue
(queue *q, elemtype *e)
*e = q->data[q->front]
; q->front =
(q->front +1)
% maxsize;
return true;
}bool queueempty
(queue q)
void
gethead
(queue q, elemtype *e)
intqueuelength
(queue q)
void
clearqueue
(queue *q)
q->front =0;
q->rear =0;
}void
queueshow
(queue *q)
while(!
queueempty
(*q)
)printf
("\n");
}
資料結構之線性結構之佇列
佇列 操作受限制的線性表 先進先出,一端插入,另一端輸出 如果是正常的線狀佇列,前面刪除資料部分的空間無法使用,會造成浪費 所有出現迴圈佇列 迴圈佇列會出現的問題 空滿時front rear都是相等,無法區分 原因 n種長度值對應n 1種情況 解決方法 使用額外標記 size或者tag 僅僅使用n ...
資料結構之線性佇列
1 佇列的定義及基本運算 定義 佇列 queue 是只允許在一端進行插入,而在另一端進行刪除的運算受限的線性表 1 允許刪除的一端稱為隊頭 front 2 允許插入的一端稱為隊尾 rear 3 當佇列中沒有元素時稱為空佇列 4 佇列亦稱作先進先出 first in first out 的線性表,簡稱...
資料結構 線性結構 佇列
陣列佇列 public class arrayqueuedemo class arrayqueue 判斷佇列是否已滿 public boolean isfull 判斷佇列是否為空 public boolean isempty 新增資料佇列 public void add int n rear arr...