一、依次插入結(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ù)組的名列前茅個元素存儲到樹根。讀入第二個元素的時候需要和樹根進(jìn)行比較,比樹根小則存到左子樹,否則存到右子樹。讀入第三個元素時,依舊先和樹根進(jìn)行比較,如果大于樹根元素,則存入右子樹,否則就與當(dāng)前左子樹樹根進(jìn)行比較,小的話則存入左子樹的左子樹。以后讀入其它元素也是如此操作,就可以創(chuàng)建一棵二叉排序樹。