1. 程式人生 > >按資料元素在表中的次序構造一棵二叉查詢樹

按資料元素在表中的次序構造一棵二叉查詢樹

二叉排序樹具有如下性質:

(1) 若左子樹不空,則左子樹上所有結點的值均小於或等於它的根結點的值;

(2) 若右子樹不空,則右子樹上所有結點的值均大於或等於它的根結點的值;

(3) 左、右子樹也分別為二叉排序樹.

元素(19.14.22.01.66.21.83.27.56.13.10)構造二叉排序樹的過程如下:

加入19, 這是根結點. 往後但凡數值比19小的都屬於左子樹, 比19大的都屬於右子樹.

加入14, 數值比19小, 作為19的左子樹.

 

      

19

     /

   14

 

加入22, 數值比19大, 作為19的右子樹.

 

      19

     /  \

   14   22

 

加入01, 數值比19, 14都小, 作為14的左子樹.

 

      19

     /  \

   14   22

   /

  1

 

加入66, 數值比19, 22都大, 作為22的右子樹.

 

      19

     

/  \

   14   22

   /      \

  1       66

 

加入21, 數值比19大, 比22小, 作為22的左子樹.

 

      19

     /   \

   14    22

   /    /  \

  1    21   66

 

加入83, 數值比19, 22, 66都大, 作為66的右子樹.

 

      19

     /   \

   14    22

   /    /  \

  1    21   66

             \

              83

加入27, 數值比19, 22都大, 但是比66小, 作為66的左子樹.

 

      19

     /   \

   14    22

   /    /  \

  1    21   66

           /  \

          27   83

加入56, 數值比19, 22都大, 比66小, 但是比27大, 作為27的右子樹.

 

      19

     /   \

   14    22

   /    /  \

  1    21   66

           /  \

          27   83

           \

            56

加入13, 數值比19, 14都小, 但是比1大, 作為1的右子樹.

 

      19

     /   \

   14    22

   /    /  \

  1    21   66

   \       /  \

    13    27   83

           \

            56

加入10, 數值比19, 14都小, 比1大, 但是比13小, 作為13的左子樹.

 

      19

     /   \

   14    22

   /    /  \

  1    21   66

   \       /  \

    13    27   83

   /       \

  10        56

因為二叉樹排序的根結點是19, 27比19大, 所以27肯定排在根結點19的右子樹,

而13比19小, 所以13肯定排在根結點19的左子樹, 故此,13不會是27的左子樹.

根據二叉排序樹的性質, 13是1的右子樹.