一、實驗目的
1、掌握鏈式儲存佇列的進隊和出隊等基本操作
2、了解佇列的應用
二、實驗環境
硬體環境要求:
pc機(單機)
使用的軟體名稱、版本號以及模組:
vs2010或visual c++ 6.0或win-tc等。
三、實驗內容
1、編寫乙個程式,實現鏈隊的各種基本運算(假設佇列中元素型別為char),並在此基礎上設計乙個程式完成如下功能:
(1)初始化鏈隊q;
(2)判斷鏈隊q是否非空;
(3)依次進隊元素a,b,c;
(4)出隊乙個元素,輸出該元素;
(5)依次進鏈隊元素d,e,f;
(6)輸出出隊序列;
(7)釋放鏈隊。
四、實驗要求
1、用 vs2010 工具建立檔案或程式,輸入**後,進行編譯執行或在控制台 執行。
2、**程式執行結果,並根據結果進行思考,對程式進行修改和總結。
【核心演算法提示】
鏈佇列儲存結構:
typedef struct qnode
qnode;
//鏈隊節點型別
typedef struct
qutype;
//鏈隊型別
建立空佇列:
status initqueue
(linkqueue &q)
入隊:
status enqueue
(linkqueue &
q, qelemtype e)
出隊:
源**
#include
#include
typedef char elemtype;
typedef struct qnode
qnode;
typedef struct
liqueue;
void
initqueue
(liqueue *
&q);
void
destroyqueue
(liqueue *
&q);
bool queueempty
(liqueue *q)
;void
enqueue
(liqueue *
&q, elemtype e)
;bool dequeue
(liqueue *
&q, elemtype &e)
;void
initqueue
(liqueue *
&q)//初始化佇列
void
destroyqueue
(liqueue *
&q)//銷毀佇列
}free
(p);
free
(q);
//釋放鏈隊節點占用空間
}bool queueempty
(liqueue *q)
//判斷佇列是否為空
void
enqueue
(liqueue *
&q, elemtype e)
//進隊
}bool dequeue
(liqueue *
&q, elemtype &e)
//出隊
void
main()
printf
("\n");
printf
(" (7)釋放鏈隊\n");
destroyqueue
(q);
}
7 6 棧與佇列 棧的基本操作和應用
棧和佇列都是特殊的線性表,是限制訪問位置的線性結構 可以由順序表實現,也可以由鍊錶實現。棧定義為 只允許在表的一端進行插入和刪除的線性表 允許進行插入和刪除的一端叫做 棧頂 top 而另一端叫 棧底 bottom 棧中沒有任何元素時,稱為 空棧。設給定棧s a0,a1,an 1 稱a0為棧底,an ...
棧與佇列基本操作
想了下,上學期學的資料結構線性結構還有些混亂的地方,想做一點注意事項的總結。1.鍊錶 2.棧順序棧 定義乙個陣列 可以是陣列形式的data 或指標形式的 data,若是指標形式就 需要在結構體中加乙個變數maxsize存放陣列的最大容量 和棧頂指標 在順序棧中就是 陣列下標 棧頂指標存放棧頂元素,初...
棧與佇列基本操作
include include typedef struct lnodelnode,linklist 頭插法 linklist create list head int n return head 尾插法 linklist create list tail int n else tail next ...