資料結構庫 順序棧的概念及實現

2022-08-18 01:18:12 字數 1954 閱讀 4644

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 的實現:

1

#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

8,staticstack 的測試**:

1 #include 2 #include "

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 }

9,小結:

1,棧是一種特殊的線性表;

3,staticstack 使用原生陣列作為內部儲存空間;

4,staticstack 的最大容量由模板引數決定;

資料結構 棧的概念及實現

棧的概念及結構 棧 一種特殊的線性表,其只允許在固定的一端進行插入和刪除元素操作。進行資料插入和刪除操作的一端稱為棧頂,另一端稱為棧底。棧中的資料元素遵守後進先出lifo last in first out 的原則。壓棧 棧的插入操作叫做進棧 壓棧 入棧,入資料在棧頂。出棧 棧的刪除操作叫做出棧。出...

資料結構遍歷順序棧 資料結構 順序棧的實現

資料結構 順序棧的實現 1 快速開始 棧是一種遵循元素後進 push 先出 pop 規則的線性表,即最後加入的元素最先出來,它的實現可以用陣列或者鍊錶。它的特點如下 先出,先入後出。除了頭尾節點之外,每乙個元素有乙個前驅,有乙個後繼。2 實現棧 我們已經說過了,棧是一種線性表,故其底層是基於陣列或者...

資料結構 順序棧的實現

棧是一種遵循元素後進 push 先出 pop 規則的線性表,即最後加入的元素最先出來,它的實現可以用陣列或者鍊錶。它的特點如下 我們已經說過了,棧是一種線性表,故其底層是基於陣列或者鍊錶的。那麼,我們的重點是維護一種規則,即後進先出。我們始終要有乙個變數l來記錄最後乙個元素的位置 當彈出時,將l位置...