佇列的基本操作與應用

2021-10-02 02:56:20 字數 2084 閱讀 1244

一、實驗目的

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 ...