用棧代替遞歸 計算機(jī)815考研科目?
計算機(jī)815考研科目?815《計算機(jī)專業(yè)基礎(chǔ)綜合》碩士研究生入學(xué)考試和《數(shù)據(jù)結(jié)構(gòu)》、《計算機(jī)組成原理》、《操作系統(tǒng)》三一大塊內(nèi)容,各占1/3??荚嚧缶V:數(shù)據(jù)結(jié)構(gòu)1、數(shù)據(jù)結(jié)構(gòu)的基本概念,算法教材習(xí)題解答
計算機(jī)815考研科目?
815《計算機(jī)專業(yè)基礎(chǔ)綜合》碩士研究生入學(xué)考試和《數(shù)據(jù)結(jié)構(gòu)》、《計算機(jī)組成原理》、《操作系統(tǒng)》三一大塊內(nèi)容,各占1/3。
考試大綱:
數(shù)據(jù)結(jié)構(gòu)
1、數(shù)據(jù)結(jié)構(gòu)的基本概念,算法教材習(xí)題解答特征,算法的簡單分析與時間/空間復(fù)雜度。
2、線性表的概念特征及的實現(xiàn)方法。
3、棧和隊列的概念特征及實現(xiàn)方法,遞歸過程。
4、雙維數(shù)組與存儲,特殊能量矩陣和稀疏矩陣的壓縮后存儲。
5、二叉樹的性質(zhì)及實現(xiàn)方法,線索二叉樹,二叉排序樹,達(dá)到平衡二叉樹,哈夫曼樹,堆的建立,直接插入和刪掉算法的實現(xiàn)。
6、樹與森林的概念,存儲及操作算法,B樹,B樹的定義及操作的實現(xiàn)。
7、圖的概念,存儲可以表示,操作及應(yīng)用的實現(xiàn)。
8、查看的概念及典型查看算法的實現(xiàn),哈希表。
9、排序的概念及典型排序算法的實現(xiàn)。
遞歸調(diào)用的形式與特點(diǎn)?
遞歸過程是方法自己全局函數(shù)自己,象用在父子級結(jié)構(gòu)中。但應(yīng)注意二分查找次數(shù)不宜過多要先設(shè)置遞歸的出口不然會使棧程序報錯而拋出無比使項目崩掉
為什么棧相對于堆很?。?/h2>
棧的大小一般是一就開始就固定設(shè)置的大小,但是相對而言堆的大小來說非常小。
就沒那就急切,棧和堆全是內(nèi)存空間上定義的邏輯空間,棧這個可以使用后的內(nèi)存空間,也可以可以使用非后的內(nèi)存空間,但在訪問時是時間限制在空間的一端,棧像是用于關(guān)閉或遞歸過程等操作中,貯放的信息太遠(yuǎn)。而堆結(jié)構(gòu)占內(nèi)存的是內(nèi)存中一片嘗試的系統(tǒng)分區(qū),其用途是主要是用于儲存時程序代碼或數(shù)據(jù)的,空間肯定比棧要大。大多數(shù)他所的邏輯塊雖然應(yīng)該兩個概念,stack和heap吧!
是否所有的循環(huán)函數(shù)都可用遞歸來實現(xiàn)呢?
先說看看個人理解-是的,所有的循環(huán)函數(shù)都這個可以用遞歸來實現(xiàn)方法。至少,我目前是這樣認(rèn)為的。
所謂的遞歸函數(shù)是是直接間接調(diào)用函數(shù)本身,則訪函數(shù)被稱遞歸算法函數(shù)我們怎么學(xué)習(xí)的時候接觸的比較好多的是一種叫斐波那契數(shù)列,在這里我們以1到100的數(shù)列求和為例,第一種是按照循環(huán)基于的,第二種則通過遞歸利用。
圖1,求逆利用的方法
圖2,遞歸基于的方法
從上面對比看出來,兩者都可以不實現(xiàn)程序你所選的目的,但遞歸過程函數(shù)給人的感覺人精簡整合些,我知道,遞歸函數(shù)的優(yōu)點(diǎn)本質(zhì)簡單啊、邏輯清晰,正畢竟,邏輯清晰,我們有的時候比較比較難于頓時再理解透。
因為,在我的確循環(huán)函數(shù)是也可以都用遞歸過程函數(shù)基于,只要你你邏輯夠強(qiáng)。當(dāng)然需要注意什么,遞歸過程是一種棧的動態(tài)創(chuàng)建,不需要如何防止棧瀉出,棧的大小不是什么無限的。