Mis on Quadtree?

Quadtree on puutaoline struktuur, mis põhineb nelja võimsusel ja mida kasutatakse failide korraldamiseks andmebaasis. Igal vanem- või alustaval sõlmel on neli alamsõlme ja iga alamsõlme käes on teatud hulk andmeid. Kui andmelimiit läheb üle selle piiri, tehakse sellest sõlmest neli last. Seal on kaks peamist neljapuustruktuuri: piirkond ja punktpuu, millest kumbki on disainilt veidi erinev. Kui nelipuud kasutatakse kõige sagedamini koos andmebaasidega, saab seda kasutada ka kahemõõtmeliste (2D) piltide pikslite leidmiseks, kuna 2D-pildi pikslid saab alati neljaks osaks jagada.

Kõik puutaolised struktuurid on tehtud vanema ehk oksa sõlmede ja alam- või lehesõlmedega. Vanem on lähtepunkt ja sisaldab laialdasi kategooriapõhiseid andmeid, samas kui lapsel on failid ja dokumendid. Nelikpuus peab igal vanemal olema neli last. Kuigi lapsi peab olema neli, ei pea kõik lapsed sisaldama andmeid; neid, millel pole, nimetatakse nullsõlmedeks. Need nullsõlmed jäävad sageli seisma ja ootavad andmeid.

Igal neljapuu alamsõlmel on andmepiirang. See piirang määratakse tavaliselt andmebaasi üldise suurusega. Kui teavet on nii palju, et see ületab piiri, muutub alamsõlm põhisõlmeks sünnitades – luues neli alamsõlme, mis võtavad enda alla kõik lisaandmed. Sellest loomisest on tavaliselt üks või kaks nullsõlme, kuid see sõltub täielikult sellest, kui palju andmeid sõlmes oli.

Seal on kaks peamist nelipuud: piirkond ja punkt. Piirkonna kvadrapuud kasutatakse terve 2D piirkonna jaotamiseks osadeks nelja võimsuse alusel – näiteks neljaks, kaheksaks või 16 osaks – ja seda kasutatakse sageli esitusteks. See struktuur sobib kõige paremini piltide või andmeväljade graafikute jaoks. Punktiversioon on nagu kahendpuu ja seda on kõige parem kasutada järjestatud punktidega. See variant on ka tõeline puu, sest erinevalt piirkonna versioonist, kus sõlmed on hajutatud, on olemas keskpunkt, millest kõik sõlmed pärinevad.

Kvadrapuu kõige levinum kasutusala on andmebaasi eraldamine ja korrastamine, kuid see pole selle ainus kasutusala. Pildilt kindla piksli leidmiseks loodud algoritmid kasutavad tavaliselt neljapuid, kuna pildi iga piksli saab jagada neljaks võrdseks osaks. See muudab nelipuud pikslite otsimiseks ainulaadselt sobivaks.