DevLab

İkili Axtarış Ağacı

Orta
treetraversalbstdata structures
3000 ms
256 MB

İkili axtarış ağacına (Binary Search Tree - BST) ədədlərin əlavə edilməsi əməliyyatını həyata keçirin.

İkili axtarış ağacı bir-birinə bağlı düyünlər (nodes) silsiləsindən ibarətdir.

Əsas qayda: Sol alt ağacdakı bütün məlumatlar cari düyünün məlumatından kiçik və ya ona bərabər, sağ alt ağacdakı bütün məlumatlar isə cari düyünün məlumatından böyük olmalıdır.

Məsələn, əgər biz ağaca ardıcıl olaraq 4 2 6 1 3 5 7 məlumatlarını əlavə etsək, yekun mənzərə bu formaya düşəcək:

          4
        /   \
       /     \
      2       6
     / \     / \
    1   3   5   7

Sizin vəzifəniz verilmiş ədədlər ardıcıllığından istifadə edərək bu ağac strukturunu sıfırdan qurmaqdır. Ağacın düzgün qurulduğunu sübut etmək üçün proqramınız ağac üzərində "Pre-order" (Kök - Sol - Sağ) keçidi edərək elementləri çap etməlidir.

(Pre-order keçidində əvvəlcə düyünün özü, sonra sol alt ağacı, ən sonda isə sağ alt ağacı ziyarət edilir).

Giriş verilənləri:

Birinci sətirdə ağaca əlavə ediləcək elementlərin sayı olan N tam ədədi verilir.

İkinci sətirdə isə aralarında boşluq olmaqla N ədəd tam ədəd verilir. (İlk oxunan ədəd ağacın kökü - root hesab edilir).

Çıxış verilənləri:

Ağac qurulduqdan sonra, ağacdakı bütün elementləri Pre-order ardıcıllığı ilə tək sətirdə, aralarında boşluq olmaqla çap edin.

1Nümunə 1:
Giriş:
7 4 2 6 1 3 5 7
Çıxış:
4 2 1 3 6 5 7

Məhdudiyyətlər

  • 1 <= N <= 105

  • Ağaca əlavə edilən hər bir ədəd (X) üçün: -109 <= X <= 109

  • Bərabər elementlər düyünün sol alt ağacına əlavə edilməlidir.

REDAKTOR
Giriş edin
Giriş:
1 4
Çıxış:
4