棧(stack)在電腦科學中是限定僅在表尾進行插入或刪除操作的線形表。它按照後進先出的原則儲存資料,先進入的資料被壓入棧底,最後的資料在棧頂,需要讀資料的時候從棧頂開始彈出資料(最後乙個資料被第乙個讀出來,它只能在某一端插入和刪除的特殊線性表。用桶堆積物品,先堆進來的壓在底下,隨後一件一件往堆。取走時,只能從上面一件一件取。堆和取都在頂部進行,底部一般是不動的。
棧就是一種類似桶堆積物品的資料結構,進行刪除和插入的一端稱棧頂,另一堆稱棧底。插入一般稱為進棧(push),刪除則稱為退棧(pop)。 棧也稱為後進先出表(lifo表)。
1、進棧(push)演算法
1、若top≥n時,則給出溢位資訊,作出錯處理(進棧前首先檢查棧是否已滿,滿則溢位;不滿則作②);
2、置top=top+1(棧指標加1,指向進棧位址);
3、s(top)=x,結束(x為新進棧的元素);
2、退棧(pop)演算法
1、若top≤0,則給出下溢資訊,作出錯處理(退棧前先檢查是否已為空棧, 空則下溢;不空則作②);
2、x=s(sop),(退棧後的元素賦給x);
3、top=top-1,結束(棧指標減1,指向棧頂)。
下面看一下棧的實現介面:
public inte***ce istack
下面的**是棧的實現的類:
code
public class jstack : istack
set
} public int size
set
} public int top
}public jstack(int length)
public int length()
public bool isempty()
public void clear()
public void push(t items)
} public t pop()
return tmp;
} public t getpopvalue()
return item[top];}}
下面進行測試:
code
trycatch (exception ex)
{
資料結構與演算法系列 棧 順序棧
棧的定義 棧又稱堆疊,是一種特殊的線性表 限制 先進後出 允許插入和刪除的一端叫做變化的一端 稱為棧頂,棧頂元素 棧底。比如把子彈壓入彈夾,裡面的子彈就是先進後出。棧的順序儲存結構 簡稱順序棧,它是利用一組位址連續的儲存單元依次存放自棧底到棧頂的資料元素。順序棧的定義及相關操作。include de...
C 資料結構與演算法系列(八) 棧(Stack)
棧是乙個先入後出 filo first in last out 的有序列表 根據棧的定義可知,最先放入棧中的元素在棧底,最後放入的元素在棧頂,而刪除元素剛好相反,最後放入的元素最先刪除,最先放入的元素最後刪除 子程式的呼叫 在跳往子程式前,會先將下乙個指令的位址存入堆疊中,直到子程式執行完後再將位址...
資料結構與演算法系列 字典樹
一 背景 什麼是字典樹?trie樹,即字典樹,又稱單詞查詢樹或鍵樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計和排序大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 最大限度地減少無謂的字串比較,查詢效率比雜湊表高。trie的核心思想是空間換時間。利用字串的...