韓順平_PHP程序員玩轉算法公開課(第一季)06_堆棧在內存中存在形式剖析_學習筆記_源代碼圖解_PPT文檔整理


文西馬龍:http://blog.csdn.net/wenximalong/

堆棧——最神奇的數據結構
0.提出問題
1.堆棧的概念
2.堆棧的實際運用
3.用數組模擬棧
4.完成以自定義優先級的綜合計算器

剛開始學習的時候,沒感覺到有多大的用處,后來在工作過程中,當你發現要處里,比如先入后出的這種情況的時候,就會發現堆棧非常的有用了

准確的說,堆是堆,棧是棧

0.提出問題
輸入一個表達式:計算7*2*2-5+1-5*3-3 怎么搞定

1.堆棧的概念
一個先入后出(FILO-First In Last Oot)的有序列表。堆棧(stack)的限制線性表中元素的插入和刪除只能在線性表的同一端進行的一種特殊線性表。允許插入和刪除的一端,為變化的一端,成為(Top),另一端為固定的一端,稱為棧底(Bottom)。根據堆棧的定義而知,最先放入棧中元素在棧底,最后放入的元素在棧頂,而刪除元素(或者取元素)剛好相反,最后放入的元素最先刪除,最先放入的元素最后刪除。


2.堆棧的實際運用
(1)子程序的調用:在跳往子程序前,會先講下個指令的地址存到堆棧中,直到子程序執行完畢后再講地址取出,回到原來的程序中。

(2)處里遞歸調用:和子程序的調用類似,只是除了存儲下一個指令的地址外,也將參數、區域變量等數據存入堆棧中。
(3)表達式的轉換與求值。 //綜合的計算器
(4)二叉樹的遍歷。 //前序遍歷,后序遍歷,中序遍歷
(5)圖形的深度優先(depth-first)搜索法。 //搜索算法


韓順平_PHP程序員玩轉算法公開課_學習筆記_源代碼圖解_PPT文檔整理_目錄


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com