Mis on binaarne puu?

Binaarne puu on teatud tüüpi andmestruktuur, mida kasutatakse arvutiprogrammeerimises teabe salvestamiseks, sortimiseks ja juurdepääsuks. Binaarsed puud on kõige lihtsam puusort, kuid need on väga kasulikud ja hõlpsasti rakendatavad. Tüüpiline binaarpuu teostus tugineb juursõlmele, mis on seotud sõlmede seeriaga, mis moodustavad puu enda osutimuutujate kaudu. Seda tüüpi puu on oma nime saanud asjaolust, et ühelgi puu sõlmel ei saa olla rohkem kui kaks last.

Puu andmestruktuure on palju erinevaid. Need koosnevad erinevatest sõlmedest, mis on korraldatud hierarhilise mustriga. Üks sõlm, juur, on pääsupunkt, mille kaudu saab kogu andmepuud otsida või muul viisil manipuleerida. See juursõlm osutab puu enda ülemisele sõlmele.

Igal puu sõlmel, välja arvatud kõige ülemisel sõlmel, on emasõlm, mis asub puu hierarhias selle kohal. Sellel võivad olla ka alamsõlmed, mis asuvad selle all. Antud sõlmele pääseb juurde puus selle kohal olevate sõlmede kaudu ja see annab juurdepääsu selle all olevatele sõlmedele.

Binaarpuu andmestruktuurid võimaldavad igal sõlmel olla kuni kaks last. Antud sõlmele võib seega olla lisatud null, üks või kaks alamsõlme. Tavalised binaarsed puud võimaldavad sõlmede loomist suvalise arvu lastega puu mis tahes punktis. Samuti ei sea need piiranguid sellele, kuidas puud sisaldavatesse sõlmedesse salvestatud väärtused on paigutatud.

Andmestruktuurid on kõige kasulikumad siis, kui need parandavad andmetele juurdepääsu kiirust arvutis ja nende tõhususe parandamiseks kasutatakse kahendpuude muudetud versioone. Binaarne otsingupuu on puu, milles kõik antud sõlme vasakpoolsel laskuval harul asuvad andmeväärtused on võrdsed või väiksemad selles sõlmes salvestatud väärtusega. Järjestatud binaarpuu sõlme paremal küljel olevad väärtused peavad omakorda olema suuremad kui põhisõlme väärtus. See andmete järjestamine võimaldab kirjutada palju tõhusama otsingualgoritmi.

Otsingualgoritmi efektiivsuse määramisel on oluline ka kahendpuu kuju. Binaarse puu kõige vähem tõhus variant on selline, kus igal sõlmel on ainult üks laps. Arvutil võib olla vaja uurida kogu puu kõiki andmeid, et leida selles konfiguratsioonis üksainus teave. Kõige tõhusam kahendpuu on seevastu selline, kus igal sõlmel, välja arvatud need, mis asuvad puu allosas, on kaks last ja kus kõik lehesõlmed ehk puu alumised sõlmed on juurest samal kaugusel.