2018考研計算機數(shù)據(jù)結(jié)構(gòu)要點:二叉樹

字號:


    新東方在線推薦:2018年考研順利課程!!一科不過,全科免費
    下面為大家介紹一下二叉樹的幾種遍歷方法:
    由二叉樹的定義可知,一顆二叉樹由根節(jié)點及左、右子樹三個基本部分組成,因此,只要依次遍歷這三部分,就可以遍歷整個二叉樹。
    1.先序遍歷
    先序遍歷的遞歸過程為:若二叉樹為空,遍歷結(jié)束。否則,
    (1)訪問根節(jié)點;
    (2)先序遍歷根節(jié)點的左子樹;
    (3)先序遍歷根節(jié)點的右子樹。
    2.中序遍歷
    中序遍歷的遞歸過程為:若二叉樹為空,遍歷結(jié)束。否則,
    (1)中序遍歷根節(jié)點的左子樹;
    (2)訪問根節(jié)點;
    (3)中序遍歷根節(jié)點的右子樹。
    3.后序遍歷
    后序遍歷的遞歸過程為:若二叉樹為空,遍歷結(jié)束。否則,同濟大學(xué)四平路
    (1)后序遍歷根節(jié)點的左子樹;
    (2)后序遍歷根節(jié)點的右子樹;
    (3)訪問根節(jié)點。
    層次遍歷
    二叉樹的層次遍歷,是指從二叉樹的第一層(根結(jié)點)開始,從上至下逐層遍歷,在同一層中,則按從左到右的順序?qū)Y(jié)點逐個訪問。在進行層次遍歷時,對一層結(jié)點訪問完后,再按照它們的訪問次序?qū)Ω鱾€結(jié)點的左孩子和右孩子順序訪問,這樣一層一層進行,先遇到的結(jié)點先訪問,這與隊列的操作原則比較吻合。因此,在進行層次遍歷時,可設(shè)置一個隊列結(jié)構(gòu),遍歷從二叉樹的根結(jié)點開始,首先將根結(jié)點指針入隊列,然后從對頭取出一個元素,每取一個元素,執(zhí)行下面兩個操作:
    (1)訪問該元素所指結(jié)點;
    (2)若該元素所指結(jié)點的左、右孩子結(jié)點非空,則將該元素所指結(jié)點的左孩子指針和右孩子指針順序入隊。
    此過程不斷進行,當隊列為空時,二叉樹的層次遍歷結(jié)束。
    下面大家來看二叉樹遍歷這部分在考試中??碱}型
    1.由二叉樹的兩個遍歷序列的組合(先序序列和中序序列)、(中序序列和后序序列)、(層次序列和中序序列)構(gòu)造該二叉樹或求其他遍歷序列是一種常見的題型。需要注意的是已知二叉樹的先序序列和后序序列不能確定該二叉樹。
    2.以遍歷為基礎(chǔ)的二叉樹算法設(shè)計是考試的重點和難點。常見的試題有以下幾類:
    (1)基于二叉樹遍歷的遞歸算法
    這類題目的特點是直接根據(jù)三種遞歸算法改寫,修改訪問語句來實現(xiàn)。例如:求二叉樹的結(jié)點個數(shù)。
    (2)基于二叉樹層次遍歷的算法
    這類題目有求二叉樹的高度,求二叉樹大寬度等。
    (3)基于順序存儲的二叉樹遍歷算法
    例如:求順序存儲的滿二叉樹中序遍歷的非遞歸算法。
    (4)其他二叉樹遍歷算法
    例如:左、右子樹交換等。
    大家要重點掌握這些以遍歷為基礎(chǔ)的二叉樹算法題目,這就要求大家多做練習,通過習題訓(xùn)練加深理解,掌握解題思路和技巧,提高解題能力。
    另外,現(xiàn)在大家開始沖刺復(fù)習了,選擇一本涵蓋全面、與真題題型一致、題目難度和真題難度高度相近,并對這兩年的考試試題進行了詳細分析的全真模擬試題集,是此時沖刺的佳幫手,可以幫助你查缺補漏,顯著提高應(yīng)試能力。