İkili Axtarış Ağacı
İ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.
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.