Operacije

Iako sortirano, binarno stablo ne garantuje brzinu izvođenja operacija. Traženje elementa u stablu npr. može da varira od O(log n) u najboljem (kao kod binarne pretrage) do O(n) u najgorem slučaju (kao kod linearne pretrage nesortiranog niza). Slično je i sa ostalim operacijama.

Pretraga

Pretraga počinje od korena stabla. Sledi jedan od algoritama:

  1. Uporedi vrednost traženog ključa sa vrednošću ključa trenutno ispitivanog čvora
  2. Ukoliko je ključ veći, ispitati desno (levo) dete
  3. Ukoliko je ključ manji, ispitati levo (desno) dete
  4. Ukoliko je ključ jednak, trenutno ispitivani čvor je traženi čvor
  5. Ako dete ka kome treba da se nastavi pretraga ne postoji, onda tražena vrednost ključa na postoji u stablu

Dodavanje novog elementa

Pretragom se ustanovljava da elementa koji treba dodati u stablu nema. Potom se na mestu deteta koje nije postojalo pravi novi element sa datim ključem i podacima.

Brisanje elemenata

Brisanje elementa iz stabla je najsloženiji od ova tri procesa. U zavisnosti od toga koliko dece ima, deli se u tri slučaja:

  1. Ukoliko čvor za brisanje nema dece. Treba obrisati čvor, a njegovo mesto kod roditelja treba da bude naznačeno kao prazno.
  2. Ukoliko čvor za brisanje ima jedno dete. Čvor treba obrisati, a njegovo mesto kod roditelja zauzima njegovo dete.
  3. Ukoliko čvor za brisanje ima dvoje dece. Čvor treba obrisati, a njegovo mesto i ulogu zauzima ili „najlevlji“ čvor njegove desne podgrane, ili „najdesniji“ čvor njegove leve podgrane. Ovi čvorovi mogu imati jedno ili nijedno dete, a treba ih istim ovim algoritmom obrisati sa mesta na kome su bili pre nego što preuzmu novu ulogu u stablu.

Nazad

 
operacije_pretraga_dodavanje_novog_elementa_brisanje_elemenata.txt · Last modified: 2011/12/08 09:04 by vladimir.bacanin
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki