ağaç yüksekliği ve isBST olmayan özyinelemeli uygulanması için yalancı kod

oy
4

Ben bir görüşme için hazırlanmalarına yardımcı olmayan özyinelemeli bir BST için özyinelemeli işlevi dönüştürme sürecinde duyuyorum. Şimdiye kadar, postorder, arama, insert, silme ve dairesel bağlantılı listeye BST dönüştürme inorder Ön siparişi anladım. Ben yüksekliği elde etmek için yığın veya sıraları kullanmak ve bir BST ise bulmak için nasıl sergiyi sorun yaşıyorum. Herhangi bir ipucu büyük takdir. Ben kodu ama kod arkasında mantık aramıyorum.

Oluştur 14/09/2011 saat 03:03
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
5

Yeni başlayanlar için, büyük iş böyle görüşmeler için hazırlık! Ben eğleniyor bu algoritmaların uğraşırken yaşıyorsanız umuyoruz.

en ikili ağaç bir BST olup olmadığını belirlemek için çalışmakla görevi ile başlayalım. Bunu yapmanın bir yolu, ağacın bir inorder yürüyüş yapmak ve elementler sıralı düzende olup olmadığını kontrol etmektir. ve ağaç bir BST yalnızca bu geçerli olacak. Zaten ağacın elemanlarının bir inorder yürüyüş yapmak için kod olduğundan inorder yürüyüşe çıkıp öğelerini gördüğümüz son öğenin takip göre sıralanır eğer, kolayca kontrol etmek için kod adapte gerekir inorder yürüyüş, ardından önceki öğeye üretilen her öğenin karşılaştırılması. İki sıralamada olmaması, ağaç bir BST değildir.

Ağacın yüksekliğini belirlemek için bir seçenek (inorder, ön sipariş, postorder) bugüne kadar geldim aramalarda söz alıp her noktada yığının yüksekliği takip etmek olacaktır. Burada fikir yığını hep köküne kadar herhangi düğümden geri yolun takip eder beri, sadece ağaç yürümek ve hiç yığın haline gördüğünü derin kaydedebilirsiniz olmasıdır. Bu maksimum derinliği daha sonra ağacın yüksekliğidir.

Bu yardımcı olur umarım! Ve görüşmeler iyi şanslar!

Cevap 14/09/2011 saat 03:17
kaynak kullanıcı

oy
0

Ağacın yüksekliği bulmak için, Morris geçişi [O (n) zaman]] kullanabilirsiniz.

geçerli bir BST olup olmadığını kontrol etmek, ağacın bir inorder yürüyüş yapmak. bir diziye elemanları taşıyın. Dizi sıralanır veya BST doğrulamak için değil olmadığına bakın.

Cevap 14/09/2011 saat 09:33
kaynak kullanıcı

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