資料結構之棧(基礎實現)

2021-10-09 23:24:30 字數 1441 閱讀 4944

(1) 子程式的呼叫:在跳往子程式前,會先將下個指令的位址存到堆疊中,直到子程式執行完後再將位址取出,以回到原來的程式中。

(2) 處理遞迴呼叫:和子程式的呼叫類似,只是除了儲存下乙個指令的位址外,也將引數、區域變數等資料存入堆

棧中。(3) 表示式的轉換[中綴表示式轉字尾表示式]與求值(實際解決)。

(4) 二叉樹的遍歷。

(5) 圖形的深度優先(depth 一 first)搜尋法。

1.陣列實現棧

定義乙個陣列模擬棧。maxsize表示最大的容量

top指標指向stack的頂部

實現的具體**

public

class

arraystack

//判斷棧是否滿

public

boolean

isfull()

//判斷棧是否為空

public

boolean

isempty()

//入棧

public

void

push

(int a)

top++

; arr[top]

=a;}

//出棧

public

intpop()

int value=arr[top]

; top--

;return value;

}@override

public string tostring()

';}}

2.用鍊錶實現棧

public

class

liststack

public

liststack()

//獲取長度

public

intlength()

//判斷是否為空

public

boolean

isempty()

//入棧

public

void

push

(t data)

//出棧

public t pop()

head.next=head.next.next;

n--;return vaule;

}//結點類

資料結構基礎之棧

棧 一種操作受限的線性表,只允許在一端插入和刪除資料。漢諾塔你有沒有玩過,每根柱子上的碟子每次只能操作最上層的乙個,或者,你可以想象平時生活中的盤子的堆疊方式,每次我們使用時都是從最上層拿乙個,放的時候也是放在最上次,這種型別的結構就是典型的棧結果,滿足,後進先出 先進後出的特點,這也是棧的資料結構...

資料結構基礎之棧

資料結構之棧結構 1.棧的特點 相比於乙個普通的陣列,棧控制了操作的方法,元素只能在棧頂入棧,也只能在棧頂出棧。2.棧的用途 在深入優先搜尋 dfs 中會用到,比如現在有乙個圖如下 現在要從a出發要遍歷整張圖,那麼首先看與a相連的b d,任選乙個,比如b,那麼要先儲存a,將其壓入棧,然後遍歷b,b又...

資料結構之棧實現

ps 棧用類實現比較好,可以同時管理多種資料結構。不過對於剛剛接觸的我來說,就看著數,按著書上的流程走吧。我會盡力把棧的特點講解清楚,以後有了更深入的了解,我會再來補充的。逆波蘭表示法 是一種將運算子寫在運算元後面的描述程式 算式 的方法。舉個例子,我們平常用中綴表示法描述的算式 1 2 5 4 改...