程式**如下:
queue.h
//封裝佇列
typedef
int qdatatype;
//typedef struct btnode* qdatatype;
typedef
struct qlistnode
qlistnode;
typedef
struct queue
queue;
void
queueinit
(queue* q)
;void
queuepush
(queue* q, qdatatype data)
;void
queuepop
(queue* q)
;qdatatype queuefront
(queue* q)
;qdatatype queueback
(queue* q)
;int
queuesize
(queue* q)
;int
queueempty
(queue* q)
;void
queueprint
(queue* q)
;
queue.c
#include
"queue.h"
#include
#include
qlistnode*
buylistnode
(qdatatype data)
pnewnode->_data = data;
pnewnode->_pnext =
null
;return pnewnode;
}//初始化(底層鍊錶:帶頭結點的單鏈表)
void
queueinit
(queue* q)
//入佇列
void
queuepush
(queue* q, qdatatype data)
//出佇列
void
queuepop
(queue* q)
}//獲取隊頭元素
qdatatype queuefront
(queue* q)
//獲取隊尾元素
qdatatype queueback
(queue* q)
//求佇列的大小
intqueuesize
(queue* q)
return size;
}//判斷佇列是否為空
intqueueempty
(queue* q)
void
queueprint
(queue* q)
printf
("null\n");
}
test.c
#include
"queue.h"
#include
#include
void
test()
intmain()
程式執行結果如下: 佇列的封裝
標頭檔案 include include define n 100 巨集定義佇列的大小 define datatype char 定義佇列資料型別 struct queue typedef struct queue q void init q myqueue 初始化佇列 int isempty q ...
優先順序佇列的封裝
優先順序佇列的封裝 優先順序佇列是佇列的一種,不過它不是逐次向佇列中新增元素,而是將元素的優先順序與佇列中元素的優先順序進行比較,然後插入乙個合適的位置。優先順序佇列封裝 與佇列封裝 類似,只不過多出乙個比較的過程。首先建立乙個名為priorityqueue的函式 接著封裝屬性,由於我們是基於陣列封...
封裝乙個棧,佇列
一 棧 特殊的線性表,只能在其一端進行資料插入和刪除操作,特性 先進後出 fifo 2 模擬實現乙個棧 include include include include include 引用前面自己實現的順序表的類的標頭檔案 using namespace std template class t 容...