棧作為一種資料結構,它按照後進先出的原則儲存資料,只能在棧頂進行插入和刪除操作的特殊線性表。
按照儲存方式不同,棧可以分為順序棧和鏈式棧。
實現順序棧需要注意:
(1)採用順序儲存方式;
(2)需要預分配空間,data[maxlen];
(3)合理分配記憶體空間是個比較麻煩的事情。如果每個棧分配空間多,則會造成儲存空間浪費;如果分配空間少,則會出現「溢位」。(這個問題可以通過鏈式棧來解決)
以下為具體實現**,在vs2010上測試通過:
#include
using namespace std;
#define maxlen 30
class mystack
;int _tmain(int argc, _tchar* argv)
int x;
sta.gettopelement(x);//x = 4, 訪問棧頂元素
sta.pop();//棧頂元素出棧
sta.gettopelement(x);//x = 3, 訪問棧頂元素
return0;}
mystack::mystack()//初始化
bool mystack::empty()
bool mystack::full()
//當棧中有乙個元素時,count = 1, 存放在data[0]
bool mystack::gettopelement(int &x)
}bool mystack::push(int x)
}bool mystack::pop()
}int mystack::size()
順序棧實現
一 實驗目的 1 熟練 棧的結構特點,掌握棧的順序儲存和鏈式儲存結構和實現。2 學會使用棧解決實際問題。二 實驗內容 1 自己確定結點的具體資料型別和問題規模 分別建立乙個順序棧和鏈棧,實現棧的壓棧和出棧操作。三 源 includeusing namespace std const int stac...
順序棧 棧的順序表示和實現
用順序表表示的棧的基本操作 include include define selemtype int define status int define stack init size 100 初始空間分配量 define stackincrement 10 儲存空間分配增量 using namesp...
順序棧的實現
棧是一種限定只在表尾進行插入或刪除操作,棧也是線性表 表頭稱為棧的底部,表尾稱為棧的頂部,表為空稱為空棧,棧又 稱為後進先出的線性表,棧也有兩種表示 順序棧與鏈式棧 順序棧是利用一組位址連續的儲存單元,依次存放從棧底到棧頂 的資料元素,附設乙個指標指示棧頂的元素在棧中的位置.ifndef stack...