1.只能在一端插入,而在另一端刪除的有序序列,這樣的資料組織方式稱為「佇列」(頭刪尾加)
2.設乙個佇列q=(a1,a2……an),則
a1:隊頭元素
an:隊尾元素
3.佇列中先插入的資料先被刪除,故佇列又被稱為「先進先出」表(fist in first out,fifo)
型別名稱:佇列(queue)
資料物件集:乙個有0個或多個元素的有窮線性表
操作集:
1.queue createqueue( int maxsize ):生成空佇列,其最大長度為maxsize
2.bool isfull( queue q ):判斷佇列q是否已滿
3.bool addq( queue q, elementtype x )將元素壓入佇列q
4.bool isempty( queue q ):判斷佇列q是否為空
5.elementtype deleteq( queue q ):刪除並返回佇列頭元素,若此時隊列為空返回error
#include
#include
#define error -1
typedef
int position;
struct qnode
;typedef
struct qnode *queue;
queue createqueue
(int maxsize )
; bool isfull
( queue q )
; bool addq
( queue q,
int x )
;bool isempty
( queue q )
;int
deleteq
( queue q )
;//返回佇列頭元素,如刪除後隊列為空返回error
void
p(queue q)
;int
main()
void
p(queue q)
else
}printf
("列印完成\n");
}queue createqueue
(int maxsize )
bool isfull
( queue q )
bool addq
( queue q,
int x )
else}
bool isempty
( queue q )
intdeleteq
( queue q )
else
else
}}
//佇列的鏈式儲存
#include
#include
#define error -1
typedef
int elementtype;
typedef
struct node *ptrtonode;
struct node
;typedef ptrtonode position;
typedef
struct qnode * ptrtoqnode;
struct qnode
;typedef
struct qnode *queue;
void
p(queue q)
;queue createqueue()
; bool addq
(queue q,elementtype x)
;bool isempty
( queue q )
; elementtype deleteq
( queue q )
;int
main()
void
p(queue q)
else
}printf
("列印完成\n");
}//void p(queue q)
// else
// }
// printf("列印完成\n");
//}queue createqueue()
bool addq
(queue q,elementtype x)
else
}bool isempty
( queue q )
elementtype deleteq
( queue q )
else
}
結構體指標改變佇列問題
資料結構 佇列
一 佇列的迴圈陣列實現。1 初始化 空佇列。令rear front 0。2 入佇列 約定rear指向佇列尾元素的下乙個位置。入佇列時,先判斷佇列是否已滿,而後將array rear x 然後rear 3 出佇列 約定front指向佇列的首元素位置。出佇列時,先判斷佇列是否為空,而後返回隊首元素re ...
資料結構 佇列
資料參考自 資料結構c 語言描述 佇列是一種先進先出的資料結構,這與棧正好相反。下例是簡單的queue實現 queue.h檔案 ifndef queue h define queue h include include 資料元素結構 自定義 struct datatype 佇列元素最大數 const...
資料結構 佇列
code for fun created by dream whui 2015 1 25 include stdafx.h include include using namespace std define true 1 define false 0 define ok 1 define erro...