首頁 - 網(wǎng)校 - 萬題庫 - 美好明天 - 直播 - 導(dǎo)航
熱點搜索
學(xué)員登錄 | 用戶名
密碼
新學(xué)員
老學(xué)員

考研計算機(jī)沖刺講解:數(shù)據(jù)結(jié)構(gòu)之二叉樹遍歷

來源:文都教育 2010-12-8 14:05:09 要考試,上考試吧! 考研萬題庫

  二叉樹是數(shù)據(jù)結(jié)構(gòu)中的重點內(nèi)容,在這兩年的考試中也將二叉樹作為重點內(nèi)容來考查。二叉樹這部分內(nèi)容要求大家掌握二叉樹的定義、性質(zhì)、存儲結(jié)構(gòu)、遍歷、線索化、森林和二叉樹的轉(zhuǎn)換等內(nèi)容。算法的重點是二叉樹的遍歷及其應(yīng)用,這也是二叉樹這部分的重點和難點。遍歷是二叉樹各種操作的基礎(chǔ),可以在遍歷過程中對結(jié)點進(jìn)行各種操作。例如:求二叉樹結(jié)點總數(shù),建立二叉樹,建立二叉樹的存儲結(jié)構(gòu)等。二叉樹的很多算法是在遍歷算法基礎(chǔ)上改造完成的,這就要求大家在復(fù)習(xí)時,熟練掌握二叉樹遍歷的遞歸和非遞歸算法。

  下面,介紹一下二叉樹的幾種遍歷方法:

  由二叉樹的定義可知,一顆二叉樹由根節(jié)點及左、右子樹三個基本部分組成,因此,只要依次遍歷這三部分,就可以遍歷整個二叉樹。

  1.先序遍歷

  先序遍歷的遞歸過程為:若二叉樹為空,遍歷結(jié)束。否則,

  (1)訪問根節(jié)點;

  (2)先序遍歷根節(jié)點的左子樹;

  (3)先序遍歷根節(jié)點的右子樹。

  2.中序遍歷

  中序遍歷的遞歸過程為:若二叉樹為空,遍歷結(jié)束。否則,

  (1)中序遍歷根節(jié)點的左子樹;

  (2)訪問根節(jié)點;

  (3)中序遍歷根節(jié)點的右子樹。

  3.后序遍歷

  后序遍歷的遞歸過程為:若二叉樹為空,遍歷結(jié)束。否則,

  (1)后序遍歷根節(jié)點的左子樹;

  (2)后序遍歷根節(jié)點的右子樹;

  (3)訪問根節(jié)點。

  層次遍歷

  二叉樹的層次遍歷,是指從二叉樹的第一層(根結(jié)點)開始,從上至下逐層遍歷,在同一層中,則按從左到右的順序?qū)Y(jié)點逐個訪問。在進(jìn)行層次遍歷時,對一層結(jié)點訪問完后,再按照它們的訪問次序?qū)Ω鱾€結(jié)點的左孩子和右孩子順序訪問,這樣一層一層進(jìn)行,先遇到的結(jié)點先訪問,這與隊列的操作原則比較吻合。因此,在進(jìn)行層次遍歷時,可設(shè)置一個隊列結(jié)構(gòu),遍歷從二叉樹的根結(jié)點開始,首先將根結(jié)點指針入隊列,然后從對頭取出一個元素,每取一個元素,執(zhí)行下面兩個操作:

  (1)訪問該元素所指結(jié)點;

  (2)若該元素所指結(jié)點的左、右孩子結(jié)點非空,則將該元素所指結(jié)點的左孩子指針和右孩子指針順序入隊。

  此過程不斷進(jìn)行,當(dāng)隊列為空時,二叉樹的層次遍歷結(jié)束。

  這部分相關(guān)算法以及二叉樹遍歷的非遞歸算法在《計算機(jī)學(xué)科專業(yè)基礎(chǔ)綜合輔導(dǎo)講義》中有詳細(xì)講解,大家如果對這部分內(nèi)容還有疑問,可以查閱《計算機(jī)學(xué)科專業(yè)基礎(chǔ)綜合輔導(dǎo)講義》,一定要把這些基礎(chǔ)內(nèi)容搞清楚。

  下面大家來看二叉樹遍歷這部分在考試中�?碱}型:

  1.由二叉樹的兩個遍歷序列的組合(先序序列和中序序列)、(中序序列和后序序列)、(層次序列和中序序列)構(gòu)造該二叉樹或求其他遍歷序列是一種常見的題型。需要注意的是已知二叉樹的先序序列和后序序列不能唯一確定該二叉樹。

  2.以遍歷為基礎(chǔ)的二叉樹算法設(shè)計是考試的重點和難點。常見的試題有以下幾類:

  (1)基于二叉樹遍歷的遞歸算法

  這類題目的特點是直接根據(jù)三種遞歸算法改寫,修改訪問語句來實現(xiàn)。例如:求二叉樹的結(jié)點個數(shù)。

  (2)基于二叉樹層次遍歷的算法

  這類題目有求二叉樹的高度,求二叉樹最大寬度等。

  (3)基于順序存儲的二叉樹遍歷算法

  例如:求順序存儲的滿二叉樹中序遍歷的非遞歸算法。

  (4)其他二叉樹遍歷算法

  例如:左、右子樹交換等。

  大家要重點掌握這些以遍歷為基礎(chǔ)的二叉樹算法題目,這就要求大家多做練習(xí),通過習(xí)題訓(xùn)練加深理解,掌握解題思路和技巧,提高解題能力。針對以上幾種算法題,大家可通過計算機(jī)學(xué)科專業(yè)基礎(chǔ)綜合輔導(dǎo)講義同步練習(xí)來準(zhǔn)備相應(yīng)的練習(xí)題并配有詳細(xì)的解答,掌握此部分內(nèi)容。

  另外,現(xiàn)在大家開始沖刺復(fù)習(xí)了,選擇一本涵蓋全面、與真題題型一致、題目難度和真題難度高度相近,并對這兩年的考試試題進(jìn)行了詳細(xì)分析的全真模擬試題集,是此時沖刺的最佳幫手,可以幫助你查缺補漏,顯著提高應(yīng)試能力。

0
收藏該文章
文章搜索
萬題庫小程序
萬題庫小程序
·章節(jié)視頻 ·章節(jié)練習(xí)
·免費真題 ·模考試題
微信掃碼,立即獲取!
掃碼免費使用
考研英語一
共計364課時
講義已上傳
53214人在學(xué)
考研英語二
共計30課時
講義已上傳
5495人在學(xué)
考研數(shù)學(xué)一
共計71課時
講義已上傳
5100人在學(xué)
考研數(shù)學(xué)二
共計46課時
講義已上傳
3684人在學(xué)
考研數(shù)學(xué)三
共計41課時
講義已上傳
4483人在學(xué)
推薦使用萬題庫APP學(xué)習(xí)
掃一掃,下載萬題庫
手機(jī)學(xué)習(xí),復(fù)習(xí)效率提升50%!
版權(quán)聲明:如果考研網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉(zhuǎn)載本考研網(wǎng)內(nèi)容,請注明出處。
官方
微信
掃描關(guān)注考研微信
領(lǐng)《大數(shù)據(jù)寶典》
下載
APP
下載萬題庫
領(lǐng)精選6套卷
萬題庫
微信小程序
幫助
中心
文章責(zé)編:zhangyuqiong