İkili Arama Tree Baskı seviyeleri

oy
1

Ben yan nesneler bir ikili arama ağacı gibi davranan sınıfıdır düğümleri tutan bir ikili arama ağacı veri yapısı sınıf var.

sınıf buraya göndermek için çok uzun olduğunu, ancak temelde bu nasıl işliyor. Ben bst üst değerini yazdırmak isterseniz diyebilirim

print (self._root)

Ben ağacın sol tarafına taşımak isteseydim, derdi (sağa gitmek için aynı, sadece sağ yerine sol koymak)

print (self._root._left)

Benim problem ile bana yardımcı olabilir böylece bu yeterli bir umut

Yani benim problem üzerine, ben bir BST varsa şöyle:

      6
     / \
    3   8
   / \   \
  1  4   10

Ben çıktısını edebilmek istiyorum:

6

3
8

1
4
10

Bir özyinelemeli travers fonksiyonu yazdım:

def traverse(self):

        a = []
        self._traverse_aux(self._root, a)   
        return a

def _traverse_aux(self, node, a):

        if node is not None:
            self._traverse_aux(node._left, a)
            a.append(node._value)
            self._traverse_aux(node._right, a)
        return

Nasıl hiç bu tek dizide değerlerini yazdırır:

[1, 3, 4, 6, 8, 10]

Bunu nasıl Yukarıda istediğiniz şekilde yazdırmak için alabilirim?

Oluştur 19/03/2014 saat 14:51
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
0

Optimal, özyinelemeli bu cevap isteyeceksin. Özellikle kastetmek Bu tip Önce Enine denir. İşte onlar java olmasına rağmen sizin için yararlı olabilecek ikili arama ağaçları kastetmek bazı notlar vardır.

İşte yinelemeli döngüleri kullanılarak verilir bir çözüm bunu çözmeye rağmen olarak karşılıklı, aynı zamanda bir çok benzer (muhtemelen çoğaltmak) sorudur.

Cevap 19/03/2014 saat 15:08
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more