依次插入結(jié)點法生成二叉排序樹是什么意思?
一、依次插入結(jié)點法生成二叉排序樹
依次插入結(jié)點法生成二叉排序樹是指利用逐點插入法建立一組序列對應(yīng)的二叉排序樹。例如利用逐點插入法建立序列(50,72,43,,85,75,20, 35,45,64,30)對應(yīng)的二叉排序樹。
1、名列前茅個數(shù)字50,作為根節(jié)點
(所有數(shù)字都要先跟50比,大的放右側(cè),小的放左)
2、第二個數(shù)字72和50比,大于50,分叉分到右側(cè)
3、第三個數(shù)字43跟50比 ,小于50,分叉分到左側(cè)
4、85先跟50比,應(yīng)該歸到右側(cè),但是右側(cè)已經(jīng)有了一個72了,85位置跟72重復(fù)了,所以要把沖突的位置作為節(jié)點繼續(xù)分叉,因此跟72比較以后,85大于72,分叉到72的右側(cè)
5、75同理,先跟50比,應(yīng)該在右,再跟72比,在右,再跟85比,在左
6、20跟50比,放到左側(cè),左側(cè)有了43,因此位置重復(fù),要把43作為節(jié)點繼續(xù)分叉,20小于43,因此放在43分叉后的左側(cè)
7、35跟50比,放到左側(cè),但是有了43,繼續(xù)分叉,應(yīng)該放在43分叉后的左側(cè),但是這個位置有了20,所以要以20為節(jié)點繼續(xù)分叉,分叉后大于20,放在20下方的右側(cè)。
8、45跟50比,小于50,放在左側(cè),左側(cè)有了43,繼續(xù)分叉,因為大于43,因此放在43的右側(cè),跟20一排
9、64和30同理類推,最終答案圖示如下:
。。。。。。。。。 50
。。。。。。。 / 。。。 \
。。。。。。43 。。。。72
延伸閱讀:
二、二叉排序樹
二叉排序樹(Binary Sort Tree或 Binary Search Tree)又稱二叉查找樹,可以用來實現(xiàn)數(shù)據(jù)的快速查找,也方便數(shù)據(jù)的插入、刪除等工作,因此適用于數(shù)據(jù)的動態(tài)查找。
二叉排序樹是一棵二叉樹,其左子樹上的元素都小于樹根,右子樹上的元素都大于樹根,所有的子樹也滿足這個性質(zhì)。
要想實現(xiàn)二叉排序樹的查找,需要事先已經(jīng)建立了二叉排序樹。其原理很簡單,如果已知一個數(shù)組,則首先把數(shù)組的名列前茅個元素存儲到樹根。讀入第二個元素的時候需要和樹根進行比較,比樹根小則存到左子樹,否則存到右子樹。讀入第三個元素時,依舊先和樹根進行比較,如果大于樹根元素,則存入右子樹,否則就與當(dāng)前左子樹樹根進行比較,小的話則存入左子樹的左子樹。以后讀入其它元素也是如此操作,就可以創(chuàng)建一棵二叉排序樹。

猜你喜歡LIKE
相關(guān)推薦HOT
更多>>
APP是怎樣獲取和上傳數(shù)據(jù)到云端數(shù)據(jù)庫的?
一、APP是怎樣獲取和上傳數(shù)據(jù)到云端數(shù)據(jù)庫的首先pc端的情況,現(xiàn)在一般都是BS架構(gòu)的系統(tǒng),所以肯定存在服務(wù)器和瀏覽器,服務(wù)器端部署著系統(tǒng)相關(guān)...詳情>>
2023-10-14 23:32:35
為什么Visual FoxPro漸漸淘汰了?
一、為什么Visual FoxPro漸漸淘汰了為什么會有Visual FoxPro 要淘汰的傳聞呢,我不是很清楚。但這兩年微軟對Visual FoxPro的不宣傳態(tài)度卻是為這...詳情>>
2023-10-14 23:20:43
到底哪些APP在用Flutter?
一、滴滴出行滴滴出行是一款出行服務(wù)平臺,提供打車、順風(fēng)車、單車等多種出行方式。在采用Flutter技術(shù)后,滴滴出行成功實現(xiàn)了Android和iOS平臺...詳情>>
2023-10-14 20:48:15
為什么不推薦使用try-with-finally處理Java異常?
一、不推薦使用try-with-finally處理Java異常的原因1、代碼冗余使用 try-with-finally 時,需要在 finally 塊中編寫釋放資源的代碼,這可能導(dǎo)致...詳情>>
2023-10-14 20:26:43熱門推薦
為什么要把web服務(wù)器和數(shù)據(jù)庫服務(wù)器運行在不同機器上?
沸APP是怎樣獲取和上傳數(shù)據(jù)到云端數(shù)據(jù)庫的?
熱為什么Visual FoxPro漸漸淘汰了?
熱粒度是什么意思?
新快照與備份有什么區(qū)別?
為什么MySQL中很少見到使用視圖功能?
Notion Database中怎么能實現(xiàn)多級標(biāo)簽?
Python底層是用什么語言實現(xiàn)的?
到底哪些APP在用Flutter?
為什么不推薦使用try-with-finally處理Java異常?
蘋果TF上架是什么意思?
Java并發(fā)編程需要掌握什么?
hash是什么?
Linux并發(fā)、競態(tài)、互斥鎖、自旋鎖、信號量都是什么?
技術(shù)干貨







快速通道 更多>>
-
課程介紹
點擊獲取大綱 -
就業(yè)前景
查看就業(yè)薪資 -
學(xué)習(xí)費用
了解課程價格 -
優(yōu)惠活動
領(lǐng)取優(yōu)惠券 -
學(xué)習(xí)資源
領(lǐng)3000G教程 -
師資團隊
了解師資團隊 -
實戰(zhàn)項目
獲取項目源碼 -
開班地區(qū)
查看來校路線