堆疊的公式化描述實現

2022-04-06 02:49:37 字數 2302 閱讀 6793

堆疊和佇列可能是使用頻率最高的資料結構,二者都來自於線性表資料結構(經過某種限制以後)。堆疊資料結構是通過對線性表的插入和刪除操作進行限制而得到的(插入和刪除操作都必須在表的同一端完成),因此,堆疊是乙個後進先出( last-in-first-out, lifo)的資料結構。

1、定義

定義 [堆疊] 堆疊( s t a c k)是乙個線性表,其插入(也稱為新增)和刪除操作都在表的同一端進行。其中一端被稱為棧頂( t o p),另一端被稱為棧底( b o t t o m)。

2、公式化描述

堆疊是一種特殊的線性表,因此它可以使用陣列或鍊錶實現。使用陣列實現即使公式化描述實現。

令棧頂元素儲存在 e l e m e n t [ l e n g t h - 1 ]中,棧底元素儲存在 e l e m e n t [ 0 ]中。堆疊元素儲存在陣列s t a c k之中, t o p用於指向棧頂元素。堆疊的容量為 m a x to p + 1 。

3、**實現

模板類:

(exceotionerror.h見佇列的實現:公式化描述)

1

#ifndef arraystack_h

2#define arraystack_h

3 #include "

exceptionerror.h"4

5 template

6class

arraystack717

}18 friend std::ostream& operator

<

1924

else

2530}31

32return

output;33}

34bool isempty()const

35bool isfull()const

36 t top()const

;37 arraystack& add(const t&x);

38 arraystack& delete(t&x);

39int quantity()const

4043

private:44

inttop;

45int

maxtop;

46 t*stack;

47};

4849 template

50 arraystack::arraystack(const

int& maxstacksize=10):maxtop(maxstacksize-1),top(-1)51

5455 template

56 arraystack::arraystack(t* s, const

int& n,const

int& maxstacksize):maxtop(maxstacksize-1),top(n-1)57

62else

6367}68

69 template

70 t arraystack::top()const

7176

else

77return

stack[top];

7879}80

81 template

82 arraystack& arraystack::add(const t&x)

8388

else

8993}94

95 template

96 arraystack& arraystack::delete(t&x)

97102

else

103107

}108

#endif

測試**:

1 #include "

arraystack.h"2

3int

main()4;

26 arraystack s2(a, 8

);27 std::cout << "

s2 is :

"<<:endl>

28 std::cout <

29 std::cout <<:endl>

30 std::cout << "

quantity of s2 is

"<< s2.quantity() <<:endl>

31 system("

pause");

32return0;

3334 }

輸出:

二叉樹實現 公式化描述

樹的定義 樹 t r e e t 是乙個非空的有限元素的集合,其中乙個元素為根 r o o t 餘下的元素 如果有的話 組成 t 的子樹 s u b t r e e 樹中層次最高的元素為根,其下一集的元素是餘下元素所構成子樹的根。樹的另一常用術語為級 level 指定樹根的級為1。元素的度 degr...

公式化的特徵工程

由 中的啟發 who will you share a ride with factors that influence trust of potential rideshare partners 首先迎面撲來的是兩種特徵分析方法 efa exploratory factor analysis cf...

C 資料結構 公式化描述的佇列Queue類

公示化描述的佇列類queue include using namespace std fiifo物件 template class queue bool isempty const bool isfull const t first const 返回隊首元素 t last const 返回隊尾元素 ...