資料結構 實驗四棧和佇列的基本操作實現及其應用

2021-08-10 04:41:30 字數 1509 閱讀 5289

一、實驗目的

1,熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。

2,學會使用棧和佇列解決實際問題。

二、實驗內容

1,自己確定結點的具體資料型別和問題規模:

分別建立乙個順序棧和鏈棧,實現棧的壓棧和出棧操作。

分別建立乙個順序佇列和鏈佇列,實現佇列的入隊和出隊操作。

2,設計演算法並寫出**,實現乙個十將二進位制轉換成2進製數。「

三.實驗報告

1.實驗**如下:

#include

using

namespace

std;

template

< typename t >

struct node

;template

< typename t >

class linkstack

}~linkstack()

void push(t x);

t pop();

void print();

t gettop()

int empty()

private:

node *top;

};template

< typename t >

void linkstack::push(t x)

template

< typename t >

t linkstack::pop()

template

void linkstack::print()

cout

<< node->data << endl;

}void main()

; cout

<< "建立物件:1,2,3,4,5依次入棧 "

<< endl;

linkstack a(arr, 5);

cout

<< "遍歷棧內的元素:";

a.print();

cout

<< "出棧乙個元素"

<< a.pop() << endl;

cout

<

a.print();

cout

<< "現在棧頂元素為:"

<< a.gettop();

cout

<< "入棧元素6~10:"

<< endl;

for (int i = 6; i <= 10; i++)

cout

<< "遍歷棧內的元素:";

a.print();

}

2.實驗結果

四.實驗總結

創立物件1,2,3,4,5依次入棧,遍歷結果5,4,3,2,1,出棧乙個元素5,得遍歷結果4,3,2,1,入棧元素6,7,8,9,10,遍歷結果10,9,8,7,6,4,3,2,1.

資料結構實驗 棧和佇列

1 採用鏈式儲存實現棧的初始化 入棧 出棧操作。2 採用順序儲存實現棧的初始化 入棧 出棧操作。3 採用鏈式儲存實現佇列的初始化 入隊 出隊操作。4 採用順序儲存實現迴圈佇列的初始化 入隊 出隊操作。5 在主函式中設計乙個簡單的選單,分別測試上述演算法。用鍊錶實現棧用的是頭插法,用鍊錶實現佇列用的是...

資料結構 四 棧和佇列

adt 棧 stack data 同線性表。元素具有相同的型別,相鄰元素具有前驅和後堆關係。operation initstack s 初始化操作.建立乙個空棧s。destroystack s 若棧存在,則銷毀它。clearstack s 將棧清空。stackempty s 若棧為空,返回true,...

《資料結構》實驗三 棧和佇列實驗

一 實驗目的 鞏固棧和佇列資料結構,學會運用棧和佇列。1.回顧棧和佇列的邏輯結構和受限操作特點,棧和佇列的物理儲存結構和常見操作。2.學習運用棧和佇列的知識來解決實際問題。3.進一步鞏固程式除錯方法。4.進一步鞏固模板程式設計。二 實驗內容 1.自己選擇順序或鏈式儲存結構,定義乙個空棧類,並定義入棧...