1、什麼是佇列?
佇列:只允許在一端進行插入資料操作,在另一端進行刪除資料操作的特殊線性表,佇列具有先進先出fifo(first in first out) 入佇列和出佇列。
隊尾:進行插入操作的一端
隊頭:進行刪除操作的一端
詳細了解:
佇列的詳解
2、佇列的實現
佇列也可以陣列和鍊錶的結構實現,使用鍊錶的結構實現更優一些,因為如果使用陣列的結構,出佇列在陣列頭上出資料,效率會比較低。
陣列結構:
鍊錶結構:
3、**實現
queue.**件
queue.c檔案#include
#include
#include
#include
typedef
char qudatatype;
typedef
struct queuenode
queuenode;
typedef
struct queue
queue;
void
queueinit
(queue* pq)
;//初始化
void
queuedestory
(queue* pq)
;//銷毀
queuenode*
buyqueuenode
(qudatatype x)
;//建立乙個節點
void
queuepush
(queue* pq,qudatatype x)
;//尾插
void
queuepop
(queue* pq)
;//頭刪
qudatatype queuefront
(queue* pq)
;//取出當前頭部元素
qudatatype queueback
(queue* pq)
;//取出當前尾部元素
intqueueempty
(queue* pq)
;//判斷佇列是否為空
intqueuesize
(queue* pq)
;//計算當前佇列元素
void
queuepirnt
(queue* pq)
;//依次取出佇列元素
main.c檔案void
queueinit
(queue* pq)
//初始化
void
queuedestory
(queue* pq)
//銷毀
pq->_front = pq->_tail =
null;}
queuenode*
buyqueuenode
(qudatatype x)
//建立乙個節點
void
queuepush
(queue* pq, qudatatype x)
//尾插
void
queuepop
(queue* pq)
//頭刪
pq->_front->_next = next->_next;
free
(next)
; next =
null;}
qudatatype queuefront
(queue* pq)
//取出當前頭部元素
qudatatype queueback
(queue* pq)
//取出當前尾部元素
intqueueempty
(queue* pq)
//判斷佇列是否為空
intqueuesize
(queue* pq)
//計算當前佇列元素
else
}return count;
}void
queuepirnt
(queue* pq)
//依次取出佇列元素
printf
("null\n");
}
執行截圖#define _crt_secure_no_warnings 1
#include
"queue.h"
intmain()
資料結構與演算法(C語言) 棧和佇列 佇列
與棧相反,佇列是一種先進先出 first in first out,fifo 的線性表。只允許在表尾一端進行插入操作而在表頭一端進行刪除操作。佇列既可以用鍊錶實現,也可以用順序表實現。跟棧相反的是,棧一般我們用順序表來實現,而佇列我們常用鍊錶來實現,簡稱為鏈佇列。佇列的鏈式表示和實現 typedef...
資料結構 佇列 佇列的鏈式儲存結構
資料結構 佇列 佇列的鏈式儲存結構 用單鏈表實現 date 2017 4 16 include include define elemtype char define initsize 100 typedef struct lnodelnode typedef structlinkqueue voi...
資料結構與演算法 佇列(佇列 迴圈佇列 鏈式佇列)
和昨天的棧有一些類似,小孱弱弱今天分享的資料結構 佇列,那是非常有意思 顧名思義呀,佇列佇列,就是排隊呀,應該還記得棧的資料操作模式吧,僅在棧尾進行插入和刪除操作,我們的佇列呢,僅在佇列頭部刪除,佇列尾部插入,這就很清楚了吧,佇列的應用很廣泛,一定要搞清楚裡面的思想哦。進入正題 先是迴圈佇列,為什麼...