天天看點

資料結構C#版筆記--堆棧(Stack)

堆棧(Stack)最明顯的特征就是“先進後出”,本質上講堆棧也是一種線性結構,符合線性結構的基本特點:即每個節點有且隻有一個前驅節點和一個後續節點。

從示意圖中可以看出,堆棧有二種實作方式:基于數組的順序堆棧實作、類似連結清單的鍊式堆棧實作

先抽象堆棧的接口IStack:

順序堆棧(SeqStack)的實作:

鍊式堆棧(LinkStack)的實作

先定義節點Node.cs

下面是LinkStack.cs

測試代碼片段:

.Net中System.Collections.Generic.Stack<T>已經提供了堆棧的基本實作,明白原理後,仍然推薦大家使用内置的實作。