本篇文章將結(jié)合《算法》第4版到涂、業(yè)界大牛的博客和自己的理解脊框,具體描述樹的一些概念,如有錯(cuò)誤践啄,請(qǐng)大佬指出浇雹。如有侵權(quán),請(qǐng)聯(lián)系我刪除屿讽,謝謝昭灵。
樹
基本概念
樹是一種簡(jiǎn)單的非線性結(jié)構(gòu),是以分支關(guān)系定義的層級(jí)結(jié)構(gòu)。和自然界的樹結(jié)構(gòu)形式很類似虎锚,所以稱之為樹。例如衩婚,物種分類(門窜护、綱、目非春、科柱徙、屬、種等)奇昙、組織結(jié)構(gòu)(處护侮、科、室等)储耐、行政區(qū)(國(guó)家羊初、省、市什湘、區(qū))长赞,這些具有層次關(guān)系的數(shù)據(jù),都可以用樹這種數(shù)據(jù)結(jié)構(gòu)來(lái)描述闽撤。
在用圖形表示數(shù)據(jù)結(jié)構(gòu)中元素之間的前后關(guān)系時(shí)得哆,一般使用有向箭頭,但在樹形結(jié)構(gòu)中哟旗,一般去掉箭頭也不會(huì)引起歧義贩据,常常使用無(wú)向線段代表數(shù)據(jù)元素之間的邏輯關(guān)系。
下面結(jié)合圖來(lái)介紹相關(guān)術(shù)語(yǔ)(圖片來(lái)源于網(wǎng)絡(luò))闸餐。
父結(jié)點(diǎn):在樹結(jié)構(gòu)中饱亮,每一個(gè)結(jié)點(diǎn)只有一個(gè)前件,稱為父結(jié)點(diǎn)绎巨,沒(méi)有前件的結(jié)點(diǎn)只有一個(gè)近尚,稱為樹的根結(jié)點(diǎn)。圖中結(jié)點(diǎn)A是樹的根結(jié)點(diǎn)场勤。
子結(jié)點(diǎn)和葉子結(jié)點(diǎn):在樹結(jié)構(gòu)中戈锻,每一個(gè)結(jié)點(diǎn)可以有多個(gè)后件,稱為該結(jié)點(diǎn)的子結(jié)點(diǎn)和媳。沒(méi)有后件的結(jié)點(diǎn)稱為葉子結(jié)點(diǎn)格遭。圖中結(jié)點(diǎn)G、I留瞳、J拒迅、F均為葉子結(jié)點(diǎn)。
度:在樹結(jié)構(gòu)中,一個(gè)結(jié)點(diǎn)所擁有的后件個(gè)數(shù)稱為該結(jié)點(diǎn)的度璧微,所有結(jié)點(diǎn)中最大的度稱為樹的度作箍。圖中,根結(jié)點(diǎn)A前硫、結(jié)點(diǎn)C和結(jié)點(diǎn)D的度為2胞得,結(jié)點(diǎn)B、H屹电、E的度為1阶剑,結(jié)點(diǎn)G、I危号、J牧愁、F的度為0,所以該樹的度為2外莲。
深度:定義一個(gè)樹的根結(jié)點(diǎn)所在的層次為1猪半,其他結(jié)點(diǎn)所在的層次等于它的父結(jié)點(diǎn)所在的層次加1。樹的最大層次稱為樹的深度苍狰。圖中办龄,根結(jié)點(diǎn)A在第1層,結(jié)點(diǎn)B淋昭、C在第2層俐填,結(jié)點(diǎn)D、E翔忽、F在第3層英融,結(jié)點(diǎn)G、H歇式、J在第4層驶悟,結(jié)點(diǎn)I在第5層,所以該樹的深度為5材失。
子樹:在樹中痕鳍,以某結(jié)點(diǎn)的一個(gè)子結(jié)點(diǎn)為根構(gòu)成的樹稱為該結(jié)點(diǎn)的一棵子樹。圖中龙巨,結(jié)點(diǎn)A有2棵子樹笼呆,分別以B、C為根結(jié)點(diǎn)旨别。結(jié)點(diǎn)B有1棵子樹诗赌,以D為根結(jié)點(diǎn)。結(jié)點(diǎn)D有2棵子樹秸弛,分別以G铭若、H為根結(jié)點(diǎn)洪碳,其中以G為根結(jié)點(diǎn)的子樹實(shí)際上只有根結(jié)點(diǎn)1個(gè)結(jié)點(diǎn),樹的葉子結(jié)點(diǎn)度為0叼屠,所以沒(méi)有子樹瞳腌。
這一篇講的是樹的基本要點(diǎn),內(nèi)容不多镜雨,本來(lái)還有二叉樹纯趋,但是寫在一起又覺(jué)得多了點(diǎn),就分開2篇來(lái)寫冷离。所以下一篇講二叉樹的一些概念。敬請(qǐng)期待哦<( ̄︶ ̄)>纯命。