漢諾塔問題之前也介紹過了,不過總覺得理解不夠深刻,今天看了清華的那版數據結構後,感覺還是有新的理解。書上的漢諾塔解法也是運用遞歸的方法,不過它介紹了系統是如何分配函數的運行控制權的。函數的調用其實在系統中也是放在棧中,後進先調用的思想。之前一直沒理解好的原因,可能也是在於漢諾塔的解法兩次用到遞歸,這樣一層的函數會停留兩次,所以容易混洗。
補充下,棧也是一種特殊的線性表,只是它只能對錶尾(棧頂)進行插入和刪除等操作,所以就形成的後進先出的模式。其次,函數運行時壓入棧的有地址,參變量等信息。在調用完後會出棧,釋放其空間。