Ben ++ Eğer kodlama C veya C ya farzederek söylüyorum.
a. Bir düğüm, bir yapı, bu gibi tanımlanmış olması durumunda: yapı düğüm {yapı düğüm sola *, * hakkı; }; Sen yapısı 0, 1 veya 2 yapraklı ya o gözlemleyebiliriz. Yani, maksimum 2, dk 0 yapraklardır.
b.Minimal yüksekliği sadece kök düğümü içerecektir ki burada sıfırdır. Kök düğüm Ayrıca zaman zaman derinliği denir 1. yükseklikte sayılmaz unutmayın. İşte yüksekliği için bir algoritma şudur:
int height(struct node *tree)
{
if (tree == NULL) return 0;
return 1 + max (height (tree->left), height (tree->right));
}
Devamı: http://wiki.answers.com/Q/How_do_you_find_out_the_height_of_a_Binary_Search_Tree#ixzz1NIB17SkL
c. Afedersiniz ben bu worng anlama ama biz bir kağıt parçası üzerine bu planladım ben varsayarak ediyorsam, biz kullanmak istiyorsunuz "bağlantılar" sayısını bulmak için çalışıyor olurdum? Bu durumda, sadece ağacın -1 kök düğüm için düğüm sayısı olurdu. Bu sayfada bulunan bu algoritma http://forums.techarena.in/software-development/1147688.htm size yardımcı olabilir: kontrol kök null ise, o zaman işleve parametre olarak sol ve sağ düğümleri geçmektedir.
int countnodes(Node* root)
{
if (root == null || k<=0)
{
return 0;
} else {
return 1 + count(root.left,k-1) + count(root.right,k-1);
}
}
// remember to subtract one at the end.
int totalnodes = countnodes(root) - 1;
d. En iyi durumda zaman karmaşıklığı O (nlogn) burada n eklemek için düğüm numarasıdır. En kötü durumda, O (n) 'dir. Doğrudan doğrusaldır.
Başka sorular sadece google varsa, ikili arama ağaçları hakkında bilmek şeylerin bol. Ama bunun çoğu 30 saniye içinde öğrenebilir tekrarlama olunmaz.
Umarım bu yardımcı olur. Sınavında iyi şanslar! Birkaç ay önce mayın vardı. ;)