1,棧的定義:
1,棧是一種特殊的線性表;
1,棧頂(top):允許操作的一端;
2,棧底(bottom):不允許操作的一端;
2,棧的特性:
1,後進先出(last in first out)(只有乙個特性);
3,棧的操作(創銷進出頂大清):
1,建立棧(stack());
2,銷毀棧(~stack());
3,進棧(push());
4,出棧(pop());
5,獲取棧頂元素(top());
6,獲取棧的大小(size());
7,清空棧(clear())(棧是容器,實際生活中也有);
4,棧的實現:
5,棧的順序實現:
6,staticstack 設計要點:
1,模板類:
1,使用原生陣列作為棧的儲存空間(順序棧的設計核心);
2,使用模板引數決定棧的最大空間;
7,基於順序儲存結構的棧 staticstack 的實現:
18,staticstack 的測試**:#ifndef staticstack_h
2#define staticstack_h
34 #include "
stack.h
"5 #include "
exception.h"6
7namespace
dtlib824
25int capacity() const
//o(1),當前棧的最大儲存量
2629
30void push(const t& e) //
o(1)
3138
else
3942}43
44void pop() //
o(1)
4551
else
5255}56
57 t top() const
//獲得當前的棧頂元素資料值 o(1)
5863
else
6467}68
void clear() //
o(1)
6973
int size() const
//o(1)
7477
};7879}
8081
#endif
//staticstack_h
1 #include 2 #include "9,小結:staticstack.h"3
4using
namespace
std;
5using
namespace
dtlib;67
intmain()815
catch(const exception&e)
1620
21for(int i=0; i<10; i++)
2225
26while(stack.size() > 0)27
3132
return0;
33 }
1,棧是一種特殊的線性表;
3,staticstack 使用原生陣列作為內部儲存空間;
4,staticstack 的最大容量由模板引數決定;
資料結構 棧的概念及實現
棧的概念及結構 棧 一種特殊的線性表,其只允許在固定的一端進行插入和刪除元素操作。進行資料插入和刪除操作的一端稱為棧頂,另一端稱為棧底。棧中的資料元素遵守後進先出lifo last in first out 的原則。壓棧 棧的插入操作叫做進棧 壓棧 入棧,入資料在棧頂。出棧 棧的刪除操作叫做出棧。出...
資料結構遍歷順序棧 資料結構 順序棧的實現
資料結構 順序棧的實現 1 快速開始 棧是一種遵循元素後進 push 先出 pop 規則的線性表,即最後加入的元素最先出來,它的實現可以用陣列或者鍊錶。它的特點如下 先出,先入後出。除了頭尾節點之外,每乙個元素有乙個前驅,有乙個後繼。2 實現棧 我們已經說過了,棧是一種線性表,故其底層是基於陣列或者...
資料結構 順序棧的實現
棧是一種遵循元素後進 push 先出 pop 規則的線性表,即最後加入的元素最先出來,它的實現可以用陣列或者鍊錶。它的特點如下 我們已經說過了,棧是一種線性表,故其底層是基於陣列或者鍊錶的。那麼,我們的重點是維護一種規則,即後進先出。我們始終要有乙個變數l來記錄最後乙個元素的位置 當彈出時,將l位置...