堆疊和佇列可能是使用頻率最高的資料結構,二者都來自於線性表資料結構(經過某種限制以後)。堆疊資料結構是通過對線性表的插入和刪除操作進行限制而得到的(插入和刪除操作都必須在表的同一端完成),因此,堆疊是乙個後進先出( 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 返回隊尾元素 ...