在此之前,我們介紹了動態規劃、深度優先搜索等基礎算法,但是,有部分好友評論說,難度太難了,我們知道動態規劃的自頂向下跟深度優先搜索一般都用遞歸實現,今天我們就先來講講算法與數據結構中,基礎中的基礎遞歸。講遞歸之前,我們先來了解下棧。
棧是一種基礎的數據結構,每次操作的都是棧頂的數據。我們稱棧頂的方向為上,棧底的方向為下,只有上面的元素已經出棧了,下面元素才能出棧,我們稱之為先進后出。好比這個圖中健身器材,這實際上就是一個棧,最小最上面的那塊鐵最后安裝進去,卻最先被取出來,最大的那個鐵圈,最早安裝進去,最晚取出來。(找了好久才找到一個現實生活中常見又大眾的例子,作為一個程序員,生活真的是比較單調)
棧是一種支持Push跟Pop兩種數據結構,他的基本操作如下圖所示,每次push操作,實際上都是往棧的上方插入一個元素,Pop操作,則是把棧最上方的元素彈出來。
