一..實驗目的
鞏固棧和佇列資料結構,學會運用棧和佇列。
1.回顧棧和佇列的邏輯結構和受限操作特點,棧和佇列的物理儲存結構和常見操作。
2.學習運用棧和佇列的知識來解決實際問題。
3.進一步鞏固程式除錯方法。
4.進一步鞏固模板程式設計。
二.實驗時間
準備時間為第5周到第6周,具體集中實驗時間為6週第2次課。2個學時。
三..實驗內容
1.自己選擇順序或鏈式儲存結構,定義乙個空棧類,並定義入棧、出棧、取棧元素基本操作。然後在主程式中對給定的n個資料進行驗證,輸出各個操作結果。
2.自己選擇順序或鏈式儲存結構,定義乙個空棧佇列,並定義入棧、出棧、取棧元素基本操作。然後在主程式中對給定的n個資料進行驗證,輸出各個操作結果。
3.程式設計實現乙個十進位制數轉換成二進位制數。要求,要主程式中輸出乙個10進度數,輸出其對應的2進製數序列。
前兩題是必做題,第3題是選做題。
2.1、迴圈佇列**:
/**迴圈佇列標頭檔案**/
const int maxsize=100;
templateclass duilie
; void insert(datatype x);
datatype getdulie();
datatype outduilie();
int empty();
private:
datatype data[maxsize];
int front,rear;
int flag;
};/**迴圈佇列原始檔**/
#includeusing namespace std;
#include"duilie1.h"
templateduilie::duilie()
templatevoid duilie::insert(datatype x)
templatedatatype duilie::getdulie()
templatedatatype duilie::outduilie()
templateint duilie::empty()
/**迴圈佇列主函式原始檔**/
#includeusing namespace std;
#include"duilie1.cpp"
void main()
;templateclass liandui
;/***原始檔***/
#include"liandui.h"
templateliandui::liandui()
templateliandui::~liandui()
}templatevoid liandui::insert(datatype x)
templatedatatype liandui::outlian()
templatedatatype liandui::getlian()
templateint liandui::empty()
/***主函式***/
#includeusing namespace std;
#include"liandui.cpp"
void main()
; cout<
for(i=100;i>=0;i--)
if(a[i]==0||a[i]==1)
cout<
結果如下:
總結:萬變不離其宗,都是演算法的問題,掌握好線性表很重要,第二章要花多一點時間,**要多看幾遍,而且通過選做題反映出了我自己一些計算機的基礎知識例如數制之間的轉換已經忘得差不多了
資料結構 第三章 佇列
佇列 queue 具有一定操作約束的線性表 特點 fifo 即先來先服務,只能在一端插入,在另一端刪除 順序儲存實現 由乙個一維陣列和乙個記錄頭元素位置的變數front以及乙個記錄隊尾元素位置的變數rear組成 define maxsize 儲存資料元素的最大個數 struct qnode type...
第三章 佇列 資料結構 鏈佇列 迴圈佇列
最近越來越感覺到c語言指標的強大 include include define qelemtype int define ok 1 define error 0 define overflow 0 typedef int status 單鏈表 佇列的鏈式儲存結構 typedef struct qno...
資料結構 第三章 棧與佇列
3.1 棧 3.1.1 抽象資料型別棧的定義 棧是限定僅在表尾進行插入或刪除操作的線性表。因此,對棧來說,表尾端有其特殊含義,稱為棧頂。相反地,表頭端稱為棧底。棧是後進先出 lifo 的線性表。基本操作 top 返回棧頂元素 pop 彈出棧頂元素 push a 將元素a壓入棧 empty 判斷是否為...