0

Python'da BST uyguluyor ancak but_insert(t, k) ile ilgili sorunlarım var.BST Python'da düzgün çalışma düzgün çalışmıyor

T = Node(7) 
bst_insert(T, 9) 
bst_insert(T, 5) 

Ama başka bir tuşa eklerseniz, o zaman kökünden bütün bir dal düştü gibi görünüyor: Temelde ben hemen altında gibi çalıştığını, kök çocukları eklerseniz. Örneğin, eğer yürütün: Ben sırayla T yazdırırken

T = Node(7) 
bst_insert(T, 9) 
bst_insert(T, 5) 
bst_insert(T, 3) 

Sonra sadece 7 9 olsun.

Burada Node yapıcı ve bst_insert (print_in_order işlevi düzgün şekilde çalışmayacak şekilde çalışır).

class Node: 
    def __init__(self, key): 
     self.key = key 
     self.left = None 
     self.right = None 


def bst_insert(t, k): 
    if t is None: 
     t = Node(k) 

    elif k <= t.key: 
     if t.left is None: 
      t.left = Node(k) 
     else: 
      t.left = bst_insert(t.left, k) 
    else: 
     if t.right is None: 
      t.right = Node(k) 
     else: 
      t.right = bst_insert(t.right, k) 

Teşekkürler.

cevap

0
class Node: 
     def __init__(self, key): 
      self.key = key 
      self.left = None 
      self.right = None 


    def bst_insert(t, k): 
     if t is None: 
      t = Node(k) 

     elif k <= t.key: 
      if t.left is None: 
       t.left = Node(k) 
      else: 
       t.left = bst_insert(t.left, k) #1 
     else: 
      if t.right is None: 
       t.right = Node(k) 
      else: 
       t.right = bst_insert(t.right, k) #2 
     # return the node, #1 and #2 will always get None value 
     return t