亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于NCRE的二叉樹(shù)及二叉樹(shù)遍歷教學(xué)探索

        2018-05-07 05:45:32李曉
        電腦知識(shí)與技術(shù) 2018年8期
        關(guān)鍵詞:二叉樹(shù)

        李曉

        摘要:二叉樹(shù)及二叉樹(shù)的遍歷在全國(guó)計(jì)算機(jī)等級(jí)考試公共知識(shí)部分占很大比重,針對(duì)學(xué)生沒(méi)有數(shù)據(jù)結(jié)構(gòu)的系統(tǒng)知識(shí),學(xué)起來(lái)困難,做題困難,拿不到分等問(wèn)題,通過(guò)對(duì)二叉樹(shù)遍歷問(wèn)題進(jìn)行詳細(xì)闡述,再結(jié)合一些考題進(jìn)行分析,給學(xué)生找到一些解題的捷徑,樹(shù)立解決這類(lèi)問(wèn)題的信心,幫助學(xué)生順利通過(guò)等級(jí)考試。

        關(guān)鍵詞:NCRE;二叉樹(shù);二叉樹(shù)遍歷

        中圖分類(lèi)號(hào):G64 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)08-0106-03

        1引言

        NCRE:全國(guó)計(jì)算機(jī)等級(jí)考試(National Compeer Rank Ex-amination),是由教育部考試中心主辦,面向社會(huì)考試,考查應(yīng)試人員計(jì)算機(jī)應(yīng)用知識(shí)與技能的全國(guó)性計(jì)算機(jī)水平考試。該考試分為四個(gè)級(jí)別,即一級(jí)到四級(jí),一級(jí)為初級(jí),四級(jí)為最高級(jí)。通常,普通高等學(xué)校本科學(xué)生要求達(dá)到二級(jí)水平。二級(jí)考試要求參考者具有計(jì)算機(jī)基礎(chǔ)知識(shí)和基本運(yùn)用能力,可以從事計(jì)算機(jī)程序編制,初級(jí)計(jì)算機(jī)教學(xué)培訓(xùn)以及企業(yè)中與信息化相關(guān)的工作。二級(jí)考試分為9個(gè)不同的類(lèi)別,但所有類(lèi)別都需要考生掌握一定的二級(jí)公共知識(shí),這些公共知識(shí)主要包括計(jì)算機(jī)基礎(chǔ)知識(shí),程序設(shè)計(jì)、軟件工程、數(shù)據(jù)結(jié)構(gòu)與算法、數(shù)據(jù)模型等。筆者所在的高校,學(xué)生普遍為文科類(lèi)學(xué)生,這一部分公共知識(shí)的教學(xué)一直都非常困難,學(xué)生表示很難理解,考試中學(xué)生解題非常困難。其中數(shù)據(jù)結(jié)構(gòu)中的二叉樹(shù)及二叉樹(shù)的遍歷更是教學(xué)中的難點(diǎn)。

        2二叉樹(shù)即二叉樹(shù)的遍歷

        樹(shù)是一種非線性的數(shù)據(jù)結(jié)構(gòu),具有層次關(guān)系或分支關(guān)系,可以用來(lái)描述客觀世界的很多結(jié)構(gòu),在人工智能和算法分析中都有廣泛的應(yīng)用。二叉樹(shù)是指每個(gè)結(jié)點(diǎn)最多有兩個(gè)子結(jié)點(diǎn)的結(jié)構(gòu),這兩個(gè)結(jié)點(diǎn)通常被稱為左子樹(shù)和右子樹(shù)。二叉樹(shù)是一種獨(dú)立的數(shù)據(jù)結(jié)構(gòu),不是樹(shù)的特殊形式。若將二叉樹(shù)的左右子樹(shù)顛倒,就成為了另一棵不同的二叉樹(shù),即使二叉樹(shù)中的根結(jié)點(diǎn)只有一個(gè)子結(jié)點(diǎn),也要說(shuō)明該結(jié)點(diǎn)是左子樹(shù)還是右子樹(shù),這是二叉樹(shù)與樹(shù)的最大區(qū)別。

        在二叉樹(shù)的應(yīng)用中,往往要求在二叉樹(shù)中查找滿足指定條件的結(jié)點(diǎn),或者對(duì)樹(shù)中全部結(jié)點(diǎn)逐一進(jìn)行處理,如:輸出結(jié)點(diǎn)信息等,這就引入了二叉樹(shù)的遍歷問(wèn)題、或者稱為二叉樹(shù)的周游問(wèn)題。二叉樹(shù)的遍歷實(shí)際上就是把二叉樹(shù)的所有結(jié)點(diǎn)進(jìn)行線性排列的過(guò)程,從而可以按這種線性排列訪問(wèn)到二叉樹(shù)中的每一個(gè)結(jié)點(diǎn),使得每一個(gè)結(jié)點(diǎn)均被訪問(wèn)一次,且只能被訪問(wèn)一次。遍歷對(duì)線性結(jié)構(gòu)非常容易解決,但對(duì)二叉樹(shù)這種非線性的結(jié)構(gòu),需要找到一種規(guī)律,使二叉樹(shù)上的結(jié)點(diǎn)能排列在一個(gè)線性隊(duì)列上,從而便于遍歷或周游。

        根據(jù)二叉樹(shù)的定義,二叉樹(shù)由根結(jié)點(diǎn)和左右兩課子樹(shù)構(gòu)成,如果用T代表根結(jié)點(diǎn),L代表左子樹(shù),R代表右子樹(shù),那么二叉樹(shù)有TLR,LTR,LRT,TRL,RTL,RLT六種不同的遍歷方式。但最常用到的都是先左后右的順序,所以,將TLR(即根左右)表示的遍歷稱為先根遍歷,LTR(即左根右)表示的遍歷稱為中根遍歷,而LRT(即左右根)表示的遍歷稱為后根遍歷。另外,還有一種遍歷的方式是一層一層地訪問(wèn)二叉樹(shù)中的結(jié)點(diǎn),稱為層序遍歷。但層序遍歷一般不能簡(jiǎn)單地使用L、T、R排列的方式來(lái)表示。

        (1)先根遍歷

        規(guī)則:先訪問(wèn)根結(jié)點(diǎn),再訪問(wèn)左子樹(shù),最后訪問(wèn)右子樹(shù)。

        在二叉樹(shù)中,如果除了先根遍歷的結(jié)點(diǎn)序列,還有中根遍歷的結(jié)點(diǎn)序列,由先根遍歷的第一個(gè)結(jié)點(diǎn)在中根遍歷節(jié)點(diǎn)序列中的位置,可以將中根遍歷的結(jié)點(diǎn)序列分為左右兩部分,由中根遍歷的方式可知,中根遍歷序列里根結(jié)點(diǎn)前面的結(jié)點(diǎn)必然是左子樹(shù)的結(jié)點(diǎn),根結(jié)點(diǎn)后面的結(jié)點(diǎn)必然是右子樹(shù)中的結(jié)點(diǎn)。從而該二叉樹(shù)的根結(jié)點(diǎn)及其左右子樹(shù)中的結(jié)點(diǎn)就可以確定下來(lái)。將這一過(guò)程遞歸地進(jìn)行下去,可逐步確定出二叉樹(shù)的樹(shù)形結(jié)構(gòu)。同理,如果知道二叉樹(shù)的中根遍歷序列和后根遍歷序列,同樣可以確定出二叉樹(shù)的樹(shù)形結(jié)構(gòu)。

        全國(guó)計(jì)算機(jī)等級(jí)考試公共基礎(chǔ)知識(shí)部分,關(guān)于二叉樹(shù)的遍歷每年都會(huì)有比較經(jīng)典的考題出現(xiàn),下面對(duì)等級(jí)考試中出現(xiàn)的關(guān)于二叉樹(shù)遍歷問(wèn)題的幾道考題做一一分析。

        3實(shí)例講解

        (1)設(shè)二叉樹(shù)如下圖,則此二叉樹(shù)的后根遍歷序列為:()

        A、ABDEGCFH B、DBGEAFHC C、DGEBHFCA D、ABCDEFGH

        解題方案一:根據(jù)后根序列規(guī)則,推算出此二叉樹(shù)的后根序列。

        從根結(jié)點(diǎn)依次往下,A到B,B為左子樹(shù)的根結(jié)點(diǎn),仍然不訪問(wèn),繼續(xù)再到下一層,到D。D為葉子結(jié)點(diǎn),所以訪問(wèn)D,再到E,E為根結(jié)點(diǎn),不訪問(wèn),到下一層的左子樹(shù)G,訪問(wèn)G,因?yàn)闆](méi)有右子樹(shù),接著訪問(wèn)E,再到上一層,訪問(wèn)B,則左子樹(shù)部分的后根序列為DGEB。接著是此樹(shù)的右子樹(shù)部分,直接到葉子結(jié)點(diǎn)H,訪問(wèn)H,接著訪問(wèn)上一層的F,再訪問(wèn)上一層的C,即右子樹(shù)部分的后根序列為HFC,最后訪問(wèn)整棵樹(shù)的根結(jié)點(diǎn)A,因此,這棵二叉樹(shù)的后根序列為DGEBHFCA,答案為C。

        解題方案二:此題可以有捷徑的解法。根據(jù)二叉樹(shù)后根序列的規(guī)則,需要先訪問(wèn)左子樹(shù),再訪問(wèn)右子樹(shù),最后訪問(wèn)根結(jié)點(diǎn),因此二叉樹(shù)的后根序列的最后一個(gè)字母一定是根結(jié)點(diǎn)。分析答案,發(fā)現(xiàn)只有C答案是以A字母結(jié)尾的,因此,可以很快得到此題答案為C。

        (2)設(shè)二叉樹(shù)的前根序列為ABDEGHCFIJ,中根序列為DB-GEHACIFJ,則按層次輸出(從上到下,同一層從左到右)的序列為()。

        A、ABCDEFGHIJ B、DGHEBUFCA C、JIHGFEDCBA D、GHIJDEFBCA

        解題方案一:根據(jù)前根序列和中根序列,還原這棵二叉樹(shù)。

        根據(jù)前根序列規(guī)則,第一個(gè)字母即為這棵二叉樹(shù)的根結(jié)點(diǎn),則這棵二叉樹(shù)的根結(jié)點(diǎn)為A,因?yàn)楦Y(jié)點(diǎn)為A,在中根序列中,A字母以前的字母DBGEH為這棵二叉樹(shù)的左子樹(shù)部分,CIFJ為這棵二叉樹(shù)的右子樹(shù)。繼續(xù)分析左子樹(shù)部分,根據(jù)前根序列BDEGH,左子樹(shù)的根結(jié)點(diǎn)為B,根據(jù)中根序列DBGEH,B字母左邊的D為左子樹(shù),GEH為右子樹(shù)部分。再根據(jù)前根EGH,判斷E為根結(jié)點(diǎn),依次判斷G為左子樹(shù),H為右子樹(shù)。再分析右子樹(shù)部分,前序CFIJ,C為根節(jié)點(diǎn),下一層,前序FIJ,中序IFJ,即根結(jié)點(diǎn)F,左子樹(shù)I,右子樹(shù)J。至此,已經(jīng)還原了這棵二叉樹(shù)。見(jiàn)圖2。

        根據(jù)還原以后的二叉樹(shù),可以得到此題答案為:ABCDEF-GHIJ,則答案為A答案

        解題方案二:此題也可不還原二叉樹(shù),根據(jù)前根序列規(guī)則,二叉樹(shù)的前根序列第一個(gè)字母即為二叉樹(shù)的根結(jié)點(diǎn),則該二叉樹(shù)的根結(jié)點(diǎn)為A,根據(jù)層序遍歷規(guī)則,層序的第一個(gè)字母必須是二叉樹(shù)的根結(jié)點(diǎn),因此,此題可以在答案中選擇以A字母開(kāi)頭的序列,分析答案,只有A答案符合這個(gè)條件,因此,選擇A答案。

        (3)設(shè)二叉樹(shù)的前根序列為ABDEGHCFIJ,中根序列為DB-GEHACIH,則該二叉樹(shù)的后根序列為()

        A、DGHEBIJFCA B、JIHGFEDCBA C、GHIJDEFBCA D、ABCDEFGHIJ

        解題方案一:根據(jù)前根序列和中根序列,還原這棵二叉樹(shù)。

        根據(jù)前根序列開(kāi)頭字母A,證明這棵二叉樹(shù)的根結(jié)點(diǎn)為A,再分析中根序列,A字母以前的DBGEH均為該二叉樹(shù)的左子樹(shù)部分,而CIFJ均為zJ.樹(shù)的右子樹(shù)部分。再看左子樹(shù)的前根序列,B字母開(kāi)頭,則證明左子樹(shù)的根結(jié)點(diǎn)為B字母,再看中根序列,B字母的左邊只有D字母,證明左子樹(shù)為D,GEH為右子樹(shù)部分,根據(jù)中根序列為EGH,得出結(jié)論,E為根節(jié)點(diǎn),G為左子樹(shù),H為右子樹(shù)。分析右子樹(shù)部分,前序CFIJ,證明,C為根結(jié)點(diǎn)??粗懈蛄?,C的左邊沒(méi)有字母,因此沒(méi)有左子樹(shù),右子樹(shù)部分,前序?yàn)镕IJ,則F為根結(jié)點(diǎn),I為左子樹(shù),J為右子樹(shù),至此,這個(gè)二叉樹(shù)已經(jīng)確定。見(jiàn)圖3。

        根據(jù)已經(jīng)還原出來(lái)的二叉樹(shù)和二叉樹(shù)后根遍歷規(guī)則,此二叉樹(shù)的后跟遍歷序列為:DGHEBIJFCA,所以A答案為正解。

        解題方案二:本題也可不必還原二叉樹(shù)。從前根序列可以分析出此樹(shù)的根結(jié)點(diǎn)為A,再分析此樹(shù)中根序列,A字母以前的DBGEH為此樹(shù)的左子樹(shù)部分,CIFJ為此樹(shù)的右子樹(shù)部分。根據(jù)二叉樹(shù)后根序列的規(guī)則:先左子樹(shù)再右子樹(shù)最后根結(jié)點(diǎn),那么必須把左子樹(shù)部分訪問(wèn)完了以后,才會(huì)訪問(wèn)右子樹(shù)。因此右子樹(shù)部分的CIFJ結(jié)點(diǎn)不可能出現(xiàn)在二叉樹(shù)后根序列的前五個(gè)字母,分析答案。B答案開(kāi)頭即為JI,C答案第三第四個(gè)字母為U,故這兩個(gè)答案均為錯(cuò)誤答案。再看D答案,此題已經(jīng)判斷出A結(jié)點(diǎn)為根結(jié)點(diǎn),那么后根序列的最后一個(gè)字母應(yīng)為A,所以,D答案錯(cuò)誤。得出此題的正確答案為A。

        (4)某二叉樹(shù)的前根序列為ABCD,中根序列為DCBA,則后根序列為()。

        A、BADC

        B、DCBA

        C、CDAB

        D、ABCD

        解題方案一:此題仍然需要根據(jù)前根序列和中根序列還原ZJ.樹(shù)。根據(jù)前根序列規(guī)則,得出結(jié)論此二叉樹(shù)的根結(jié)點(diǎn)為A,再分析中根序列,發(fā)現(xiàn),此二叉樹(shù)所有的結(jié)點(diǎn)都在左邊。再看左子樹(shù)的前序?yàn)锽CD,則根結(jié)點(diǎn)為B,再依據(jù)中根序列,剩下兩個(gè)結(jié)點(diǎn)仍然還是在左邊。那么前序下一個(gè)根結(jié)點(diǎn)為C,再分析中序D還是在C的左邊,得出結(jié)論,此二叉樹(shù)是一棵非常特殊的二叉樹(shù)。見(jiàn)圖4。

        根據(jù)還原出來(lái)的二叉樹(shù),得到此二叉樹(shù)的后跟序列為:DC-BA。故答案為B答案。

        解題方案二:此題仍然有比較捷徑的解法。根據(jù)前根序列,得出此二叉樹(shù)的根結(jié)點(diǎn)為A字母,那么根據(jù)二叉樹(shù)后根序列的規(guī)則,根結(jié)點(diǎn)必然是后根序列里最后一個(gè)字母。根據(jù)上述推論,在答案里找到以A字母結(jié)束的序列就是正確答案。由此得到此題的答案是B。

        4結(jié)論

        根據(jù)二叉樹(shù)的先根遍歷結(jié)點(diǎn)序列和中根遍歷結(jié)點(diǎn)序列可確定二叉樹(shù)的樹(shù)形結(jié)構(gòu);同樣的,由二叉樹(shù)的后根遍歷結(jié)點(diǎn)序列和中根遍歷結(jié)點(diǎn)序列,也可確定二叉樹(shù)的樹(shù)形結(jié)構(gòu)。但是,如果同時(shí)知道二叉樹(shù)的先根遍歷和后根遍歷,則無(wú)法確定二叉樹(shù)的樹(shù)形結(jié)構(gòu)。

        全國(guó)計(jì)算機(jī)等級(jí)考試中關(guān)于二叉樹(shù)遍歷的問(wèn)題,一般都是圍繞知道先根,中根,求后根?;蛘咧乐懈蟾?,求先根這一考點(diǎn)。根據(jù)上述四道非常典型的考題分析,同學(xué)們可以依靠扎實(shí)的理論知識(shí),認(rèn)真分析已知條件,再求解。同時(shí),我們也發(fā)現(xiàn),多數(shù)考題考慮到考生往往并不是計(jì)算機(jī)專(zhuān)業(yè)的學(xué)生,對(duì)數(shù)據(jù)結(jié)構(gòu)的知識(shí)掌握并不是特別系統(tǒng)和牢固,因此考題中也有一些捷徑的解法,即并不用完全還原二叉樹(shù),就能得到最終答案,考生掌握這樣的分析方法,可以很快求得答案,通過(guò)等級(jí)考試。

        猜你喜歡
        二叉樹(shù)
        CSP真題——二叉樹(shù)
        基于雙向二叉樹(shù)的多級(jí)菜單設(shè)計(jì)及實(shí)現(xiàn)
        電子制作(2022年16期)2022-09-23 01:39:54
        二叉樹(shù)創(chuàng)建方法
        數(shù)據(jù)結(jié)構(gòu)與虛擬儀器結(jié)合教學(xué)案例
        ——基于二叉樹(shù)的圖像加密
        基于隊(duì)列的任意二叉樹(shù)層次問(wèn)題算法設(shè)計(jì)
        一種由層次遍歷和其它遍歷構(gòu)造二叉樹(shù)的新算法
        一種由遍歷序列構(gòu)造二叉樹(shù)的改進(jìn)算法
        論復(fù)雜二叉樹(shù)的初始化算法
        河南科技(2014年24期)2014-02-27 14:20:01
        基于遍歷序列重構(gòu)二叉結(jié)構(gòu)樹(shù)的分析
        基于單鏈表的二叉樹(shù)非遞歸遍歷算法
        亚洲精品中文字幕一区二区| avtt一区| 色婷婷一区二区三区77| 亚洲日本国产精品久久| 巨茎中出肉欲人妻在线视频| 亚洲男同志gay 片可播放 | 亚洲啊啊啊一区二区三区| 高清不卡av一区二区| 欧美成人看片一区二区三区尤物| 亚洲色偷偷综合亚洲av伊人| 视频二区精品中文字幕| 日本视频在线播放一区二区| 色偷偷av一区二区三区| 久久99精品国产99久久| 熟妇与小伙子露脸对白| 四季极品偷拍一区二区三区视频| 午夜理论片yy6080私人影院| 熟妇与小伙子matur老熟妇e| 国产一区二区亚洲av| 在线观看国产成人自拍视频| 亚洲无亚洲人成网站77777| 亚洲AV秘 无码一区二p区三区 | 国产成人亚洲综合无码品善网| 国内大量揄拍人妻在线视频| 亚洲人成在线播放a偷伦| 区一区二区三区四视频在线观看| 影音先锋色小姐| 一级免费毛片| 亚洲一区二区三区av色婷婷| 精品厕所偷拍一区二区视频| 又白又嫩毛又多15p| 精品一区二区三区在线视频观看| 精品亚洲国产日韩av一二三四区| 成人午夜特黄aaaaa片男男| 国产成人久久综合热| 日本岛国视频在线观看一区二区| 国产精品高清网站| 亚洲精品无码mv在线观看 | 亚洲中文字幕第一页在线| 亚洲中文字幕国产综合| 老女老肥熟女一区二区|