Binary search tree ustida amallar. API yoziş

BSTga element qöşiş, öçiriş, qidiriş, maksimum/minimum elementni çiqariş uçun API yozamiz. APIning tuzilişi quyidagiça böladi.
Mavzu: Binary search tree
Qöşiş (Insert)
Ma’lumot qöşişdan oldin uni BST’da qidiramiz. Agar mavjud bölsa, şunçaki uning qiymatini özgartiramiz. Yöq bölsa, yangi child sifatida qöşamiz.
Element qidiriş (Find)
Elementlarni qidiriş binary search prinsipi asosida böladi: tree’dan elementni qidirişda tree’ni root’idan leaf’gaça tuşib keladi. Bunda har bir node’ga kelganda uni qidirilayotgan element bilan soliştirib, element katta bölsa, qidiruvni node’ning öng çild'idan; element kiçik bölsa qidiruvni node’ning çap çild'idan davom ettiradi.
Öçiriş (Delete)
Öçiriş haqida avvalgi maqolada tuşuntirib ötilgani uçun, bu yerda faqat funksiya bilan çeklanamiz.
Tree'dan minimum qiymatni topiş (Min)
Tree'ning minimum qiymati uning eng uzoqdagi çap node'ida bölgani uçun biz faqat çap tarafdagi çild'larni tekşiramiz. Faqat öng çild'larida node bölgan degenerate tree uçun root element qaytariladi.
Tree'dan maksimum qiymatni topiş (Max)
Tree'ning maksimum qiymati uning eng uzoqdagi öng node'ida bölgani uçun biz faqat öng tarafdagi çild'larni tekşiramiz.
Tree'dan berilgan qiymatga teng yoki undan kiçik elementni topiş (Floor)
Misol uçun, tree'da 30 50, 70 elementlari bölsayu, biz 35 ni qidirsak, funksiya 30 ni qaytaradi. Funksiya katta ma'lumotlar bilan işlaşda yoki statistikada foydali.
Tree'dan berilgan qiymatga teng yoki undan kiçik elementni topiş (Ceiling)
Floor'ning teskarisi.
Tree'ni array'ga özgartirib tartiblaş (Sort)
Tree'ni array'ga özgartirişda root'dan leafgaça tuşib kelib, ma'lumotlar array'ga yiğiladi.
Töliq API kod Githubda: https://github.com/Webmaxor/leetcode-solutions/blob/master/algorithms/trees/binary-search-trees.js
Mavzu böyiça savollarni Github’dagi Webmaxor / leetcode-solutions repository’da yozişingiz yoki kodda **Reference in new issue **ni bosib, qoldirişingiz mumkin.