Как будет выглядеть бинарное дерево поиска из этого кода?

#java #binary-search-tree

#java #binary-search-tree

Вопрос:

Я просто хочу визуализировать, как будет выглядеть этот BST после запуска кода! Есть Tree1 и Tree2.

  public static void initialise_tree(myBinarySearchTree<Integer, String> t, boolean mode){
     t.my_insert(8, "A");

     t.my_insert(5, "B");

     t.my_insert(2, "C");

     t.my_insert(1, "D");

     t.my_insert(3, "E");

     t.my_insert(7, "G");

     t.my_insert(6, "H");

     t.my_insert(11, "I");

     t.my_insert(10, "J");

     if (mode == false)
    t.my_insert(9, "K");
   }
  

Для Tree1 установлен режим false, в то время как для Tree2 установлен режим true

Комментарии:

1. В чем ваш вопрос? Вы хотите знать, как будет выглядеть дерево или как отобразить визуализацию дерева с помощью java?

2. Просто на что это будет похоже

Ответ №1:

При mode значении true оно будет выглядеть следующим образом:

          (8, "A")
         /       
    (5, "B")     (11, "I")
     /                 /    
(2, "C")     (7, "G")  (10, "J")
   |             /           /
(1, "D")(3, "E") (6, "H")    (9, "K")
  

где / представляет дочерний элемент слева (с меньшим значением, чем у его родителя) и представляет дочерний элемент справа (с большим значением, чем у его родителя).

При mode значении true просто не будет (9, "K") узла.

Комментарии:

1. Спасибо! И является ли дерево ‘mode == false’ (с 9) несбалансированным деревом? И когда 9 там нет, это сбалансированное дерево?

2. Это правильно. Вы знаете, почему это дерево будет разбалансировано при 9 добавлении?

3. Вы должны создать новый вопрос вместо того, чтобы «расширять» свой исходный вопрос таким образом, чтобы на него могли ответить только комментарии.