一、實驗目的
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.自己選擇順序或鏈式儲存結構,定義乙個空棧類,並定義入棧...