看动画学算法之:栈stack
生活随笔
收集整理的這篇文章主要介紹了
看动画学算法之:栈stack
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 簡介
- 棧的構(gòu)成
- 棧的實(shí)現(xiàn)
- 使用數(shù)組來實(shí)現(xiàn)棧
- 使用動(dòng)態(tài)數(shù)組來實(shí)現(xiàn)棧
- 使用鏈表來實(shí)現(xiàn)
簡介
棧應(yīng)該是一種非常簡單并且非常有用的數(shù)據(jù)結(jié)構(gòu)了。棧的特點(diǎn)就是先進(jìn)后出FILO或者后進(jìn)先出LIFO。
實(shí)際上很多虛擬機(jī)的結(jié)構(gòu)都是棧。因?yàn)闂T趯?shí)現(xiàn)函數(shù)調(diào)用中非常的有效。
今天我們一起來看學(xué)習(xí)一下棧的結(jié)構(gòu)和用法。
棧的構(gòu)成
棧一種有序的線性表,只能在一端進(jìn)行插入或者刪除操作。這一端就叫做top端。
定義一個(gè)棧,我們需要實(shí)現(xiàn)兩種功能,一種是push也就是入棧,一種是pop也就是出棧。
當(dāng)然我們也可以定義一些其他的輔助功能,比如top:獲取棧上最頂層的節(jié)點(diǎn)。isEmpty:判斷棧是否為空。isFull:判斷棧是否滿了之類。
先看下入棧的動(dòng)畫:
再看下出棧的動(dòng)畫:
棧的實(shí)現(xiàn)
具有這樣功能的棧是怎么實(shí)現(xiàn)呢?
一般來說棧可以用數(shù)組實(shí)現(xiàn),也可以用鏈表來實(shí)現(xiàn)。
總結(jié)
以上是生活随笔為你收集整理的看动画学算法之:栈stack的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JVM系列之:String.intern
- 下一篇: JVM详解之:汇编角度理解本地变量的生命