Tarazlanmış İkili Ağac#7466

Tarazlanmış İkili Ağac

1 saniyə
128 meqabayt
Asan

Zədəf ədədlər massivindən İkili Axtarış Ağacı yaradın. Əgər daxil edilən dəyər mövcud düyünə bərabərdirsə, onu sağ alt ağaca daxil edin.

IsBalanced metodunu həyata keçirin, hansı ki, ağacın hündürlük baxımından balanslı olub-olmadığını müəyyən edəcək. Ağac hündürlük baxımından balanslı sayılır, əgər hər bir düyün üçün onun sol və sağ alt ağaclarının hündürlüyü arasında fərq maksimum 1 olarsa.

prb7463.gif

Aşağıdakı interfeysə uyğun kod yazın:

class TreeNode
{
public:
  int val;
  TreeNode *left, *right;
  TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};

class Tree
{
public:
  TreeNode *head;
  Tree() : head(NULL) {};
  void Insert(int val); // İkili Axtarış Ağacına val ədədini daxil edin
  int IsBalanced(void); // Ağac hündürlük baxımından balanslıdırsa 1, əks halda 0 qaytarın
};
// Java
class TreeNode
{
  int val;
  TreeNode left, right;
  TreeNode(int x)
  {
    val = x;
    left = right = null;
  }
}

class Tree
{
  TreeNode head;
  Tree();
  void Insert(int val); // İkili Axtarış Ağacına val ədədini daxil edin
  int IsBalanced(); // Ağac hündürlük baxımından balanslıdırsa 1, əks halda 0 qaytarın
}

Lazım olduqda əlavə metodlar yarada (istifadə edə) bilərsiniz.

Giriş məlumatları

Birinci sətir n (1 ≤ n ≤ 100) ədədini ehtiva edir. İkinci sətir n tam ədəd ehtiva edir.

Çıxış məlumatları

Giriş məlumatlarından İkili Axtarış Ağacı yaradın. Əgər o hündürlük baxımından balanslıdırsa 1, əks halda 0 çıxarın.

Nümunələr

Nümunə 1

Loading
Loading