Kas yra dvejetainis medis?

Dvejetainis medis yra duomenų struktūros tipas, naudojamas kompiuterių programavimui informacijai saugoti, rūšiuoti ir pasiekti. Dvejetainiai medžiai yra paprasčiausia medžių atmaina, tačiau labai naudingi ir lengvai įgyvendinami. Įprastas dvejetainio medžio įgyvendinimas priklauso nuo šakninio mazgo, susieto su mazgų, kurie žymeklio kintamaisiais sudaro patį medį, serija. Šio tipo medžio pavadinimas kilęs iš to, kad joks medžio mazgas negali turėti daugiau nei du vaikus.

Medžių duomenų struktūros būna įvairių. Jie sudaryti iš skirtingų mazgų, išdėstytų hierarchine tvarka. Vienas mazgas, šaknis, yra prieigos taškas, per kurį galima ieškoti ar kitaip manipuliuoti visame duomenų medyje. Šis šaknies mazgas nurodo viršutinį mazgą pačiame medyje.

Bet kuris medžio mazgas, išskyrus aukščiausią mazgą, turės pirminį mazgą, esantį virš jo medžio hierarchijoje. Jis taip pat gali turėti antrinius mazgus, esančius po juo. Tam tikras mazgas pasiekiamas per virš jo esančius medyje ir suteikia prieigą prie žemiau jo esančių mazgų.

Dvejetainės medžio duomenų struktūros leidžia kiekvienam mazgui turėti ne daugiau kaip du vaikus. Taigi tam tikras mazgas gali turėti nulį, vieną arba du antrinius mazgus. Įprasti dvejetainiai medžiai bet kuriame medžio taške leidžia mazgus su bet kokiu vaikų skaičiumi. Jie taip pat nenustato jokių apribojimų, kaip išdėstomos reikšmės, saugomos mazguose, kurie sudaro medį.

Duomenų struktūros yra naudingiausios, kai padidina kompiuterio duomenų prieigos greitį, o jų efektyvumui pagerinti naudojamos modifikuotos dvejetainių medžių versijos. Dvejetainis paieškos medis yra toks, kuriame visos duomenų reikšmės, esančios kairiojoje mažėjančioje šakoje nuo nurodyto mazgo, turi reikšmes, kurios yra lygios arba mažesnės už tame mazge saugomą reikšmę. Dvejetainiame medyje esančio mazgo dešinėje esančios reikšmės savo ruožtu turi būti didesnės už bazinio mazgo reikšmę. Šis duomenų išdėstymas leidžia parašyti daug efektyvesnį paieškos algoritmą.

Dvejetainio medžio forma taip pat svarbi nustatant paieškos algoritmo efektyvumą. Mažiausiai efektyvi dvejetainio medžio atmaina yra ta, kurioje kiekvienas mazgas turi tik vieną atžalą. Kompiuteriui gali tekti ištirti kiekvieną duomenų elementą visame medyje, kad būtų galima rasti vieną informacijos dalį šioje konfigūracijoje. Veiksmingiausias dvejetainis medis, priešingai, yra toks, kuriame kiekvienas mazgas, išskyrus tuos, kurie yra medžio apačioje, turi du vaikus ir kuriame visi lapų mazgai, apatiniai medžio mazgai, yra vienodu atstumu nuo šaknies.