C語言之二叉樹知識彙總
阿新 • • 發佈:2022-03-11
很久沒有寫隨筆了,上次的matplotlib還沒寫完,總是想找個時間寫,但由於工作、畢設以及忙於學習深度學習知識未能繼續編寫,只能後續再來完善,此次總結是撿起以前寫過的程式碼(為了提升自己的C語言演算法實現速度),重新學習一遍二叉樹知識。
此篇文章將會很長,也無法一時間寫完,將分多個階段寫完。主要看程式碼註釋吧!!!!
說起二叉樹,得從它的定義說起。
一、什麼是二叉樹?
不同的場景下二叉樹的定義略有不同,通俗地講,我們可以理解為類似於樹且只有兩個子節點的一種資料結構即可稱之為二叉樹。
1.1什麼是樹?
對於這一塊知識我們可不深究,但有興趣的可以看下面這段內容,跳過也無關緊要。
《演算法設計與分析基礎》中描述:樹,更精確地說,自由樹就是連通無迴路圖(對於圖又是什麼,大家就需要另外查詢相關知識了,這裡不作拓展)。無迴路但不一定連通的圖稱為森林(forest)。言外之意就是森林有一個或多個樹。
如圖所示,左邊即可看作一棵樹,右邊可看作一個森林,包含了三棵樹。
對於樹,我們還可以繼續劃分為有根樹、有序樹,其中二叉樹就是所謂的有序樹的一種。
有根樹:顧名思義,有“根”,即人為地將一顆自由樹選定其中某一個節點作為“根”,剩下節點按層次從上往下排列,出現“深度”概念。
(此處應有展示圖片)
第一天,,到此結束(寫了半小時)