Što je Quadtree?

Quadtree je struktura nalik stablu koja se temelji na potenciji četiri i koristi se za organiziranje datoteka u bazi podataka. Svaki roditelj ili početni čvor ima četiri podređena čvora i svako dijete sadrži određenu količinu podataka. Kada se granica podataka prelije preko svoje granice, iz tog čvora bit će napravljeno četvero djece. Postoje dvije glavne strukture quadtree: regija i stablo točke, od kojih se svaka malo razlikuje po dizajnu. Dok se quadtree najčešće koristi s bazama podataka, može se koristiti i za pronalaženje piksela u dvodimenzionalnim (2D) slikama, jer se pikseli u 2D slici uvijek mogu razdvojiti na četiri dijela.

Sve strukture nalik drvetu izrađene su od čvorova roditelja ili grana i čvorova podređenih ili listova. Roditelj je početna točka i sadrži široke podatke temeljene na kategorijama, dok dijete drži datoteke i dokumente. U quadtrendu svaki roditelj mora imati četvero djece. Iako mora biti četvero djece, ne moraju sva djeca sadržavati podatke; oni bez poznati su kao nulti čvorovi. Ovi null čvorovi često ostaju u stagnaciji i čekaju podatke.

Svaki podređeni čvor u quadtree ima ograničenje podataka. Ovo ograničenje obično je definirano ukupnom veličinom baze podataka. Kada postoji toliko informacija da guraju preko granice, dječji čvor postaje roditeljski čvor tako što u suštini rađa – stvarajući četiri dječja čvora koji preuzimaju sve dodatne podatke. Obično će postojati jedan ili dva nula čvora iz ove kreacije, ali to u potpunosti ovisi o tome koliko je podataka bilo u čvoru.

Postoje dva glavna kvadstabla: regija i točka. Kvadratno stablo regije koristi se za razlaganje cijele 2D regije na dijelove na temelju snage četiri — kao što su četiri, osam ili 16 dijelova — i često se koristi za reprezentacije. Ova je struktura najbolja za slike ili grafikone polja podataka. Točkasta verzija je poput binarnog stabla i najbolje se koristi s uređenim točkama. Ova varijanta je također pravo stablo, jer postoji središnja točka iz koje izviru svi čvorovi, za razliku od verzije regije u kojoj su čvorovi raštrkani.

Najčešća upotreba quadtreea je odvajanje i organiziranje baze podataka, ali to nije njegova jedina upotreba. Algoritmi napravljeni za pronalaženje određenog piksela na slici obično koriste četverostruka stabla, jer se svaki piksel na slici može razdvojiti na četiri jednaka dijela. To čini quadtrees jedinstveno prikladnim za traženje piksela.