天天看點

看動畫學算法之:棧stack

簡介

棧的構成

棧的實作

使用數組來實作棧

使用動态數組來實作棧

使用連結清單來實作

棧應該是一種非常簡單并且非常有用的資料結構了。棧的特點就是先進後出filo或者後進先出lifo。

實際上很多虛拟機的結構都是棧。因為棧在實作函數調用中非常的有效。

今天我們一起來看學習一下棧的結構和用法。

棧一種有序的線性表,隻能在一端進行插入或者删除操作。這一端就叫做top端。

定義一個棧,我們需要實作兩種功能,一種是push也就是入棧,一種是pop也就是出棧。

當然我們也可以定義一些其他的輔助功能,比如top:擷取棧上最頂層的節點。isempty:判斷棧是否為空。isfull:判斷棧是否滿了之類。

先看下入棧的動畫:

看動畫學算法之:棧stack

再看下出棧的動畫:

看動畫學算法之:棧stack

具有這樣功能的棧是怎麼實作呢?

一般來說棧可以用數組實作,也可以用連結清單來實作。

繼續閱讀