c#二叉樹存儲(chǔ)介紹
存儲(chǔ)結(jié)構(gòu)
二叉樹是一種特殊的樹,給個(gè)結(jié)點(diǎn)最多有兩個(gè)子節(jié)點(diǎn),并且子節(jié)點(diǎn)有左右之分,并且兄弟,父親,孩子可以很方便的通過編號(hào)得到
1.在二叉樹的第i層上最多有2i-1個(gè)結(jié)點(diǎn)(i>=1)
2.深度為k的二叉樹至多有2i-1個(gè)結(jié)點(diǎn)
3.對(duì)于一個(gè)二叉樹,假設(shè)它有n個(gè)結(jié)點(diǎn),對(duì)結(jié)點(diǎn)進(jìn)行從1開始編號(hào),對(duì)任一結(jié)點(diǎn)i滿足下面
????a.它的雙親是節(jié)點(diǎn)i/2(除了i=1的情況)
? ? b.左孩子是2i,右孩子是2i+1
? ? c.如果2i>i說明無左孩子 2i+1>n說明無右孩子
二叉樹的遍歷
二叉樹的遍歷是指從根結(jié)點(diǎn)出發(fā),按照某種次序依次訪問二叉樹中的所有結(jié)點(diǎn),使每個(gè)結(jié)點(diǎn)被訪問一次且僅被訪問一次
1.前序遍歷
先輸出當(dāng)前結(jié)點(diǎn)的數(shù)據(jù),再依次遍歷輸出左結(jié)點(diǎn)和右結(jié)點(diǎn)
2.中序遍歷
先遍歷輸出左結(jié)點(diǎn),再輸出當(dāng)前結(jié)點(diǎn)的數(shù)據(jù),再遍歷輸出右結(jié)點(diǎn)
3.后序遍歷
先遍歷輸出左結(jié)點(diǎn),再遍歷輸出右結(jié)點(diǎn),最后輸出當(dāng)前結(jié)點(diǎn)的數(shù)據(jù)
4.層序遍歷
從樹的第一層開始,從上到下逐層遍歷,再同一層中,從左到右對(duì)結(jié)點(diǎn)逐個(gè)訪問輸出
以下代碼可以在c#中實(shí)現(xiàn)遍歷
到此這篇關(guān)于c#二叉樹存儲(chǔ)介紹的文章就介紹到這了,更多相關(guān)c#二叉樹存儲(chǔ)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#內(nèi)置隊(duì)列類Queue用法實(shí)例
這篇文章主要介紹了C#內(nèi)置隊(duì)列類Queue用法,實(shí)例分析了C#內(nèi)置隊(duì)列的添加、移除等相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04C#中關(guān)于double.ToString()的用法
這篇文章主要介紹了C#中關(guān)于double.ToString()的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02Visual Studio 2019配置vue項(xiàng)目的圖文教程詳解
這篇文章主要介紹了Visual Studio 2019配置vue項(xiàng)目的教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03C# 使用鼠標(biāo)點(diǎn)擊對(duì)Chart控件實(shí)現(xiàn)數(shù)據(jù)提示效果
這篇文章主要介紹了C# 使用鼠標(biāo)點(diǎn)擊對(duì)Chart控件實(shí)現(xiàn)數(shù)據(jù)提示效果,文章給予上一篇的詳細(xì)內(nèi)容做延伸介紹,需要的小伙伴可任意參考一下2022-08-08Unity?UGUI的MaskableGraphic可遮罩圖形組件介紹使用
這篇文章主要為大家介紹了Unity?UGUI的MaskableGraphic可遮罩圖形組件介紹使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07Winform使用FTP實(shí)現(xiàn)自動(dòng)更新
這篇文章主要為大家詳細(xì)介紹了Winform使用FTP實(shí)現(xiàn)自動(dòng)更新,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07Winform控件Picture實(shí)現(xiàn)圖片拖拽顯示效果
這篇文章主要為大家詳細(xì)介紹了Winform控件Picture實(shí)現(xiàn)圖片拖拽顯示效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09