Upload
ivan-ivanic
View
225
Download
4
Embed Size (px)
DESCRIPTION
Strukture podataka i algoritmi
Citation preview
Odjel za Informa0ku - PMFSTStrukture podataka i algoritmi 2012/2013
STRUKTURE PODATAKA I ALGORITMI
stabla
Odjel za Informa0ku - PMFSTStrukture podataka i algoritmi / 17
STABLA
Za razliku od vezane liste gdje svaki vor pokazuje na najvie 2 sljedbenika, kod stabala vorovi mogu pokaziva; na proizvoljno mnogo sljedbenika
Stabla su najvanija nelinearna struktura u programiranju openito
Stablo T se denira kao konaan skup jednog ili vie vorova takvih da
- postoji jedan posebno oznaeni vor koji se zove korijen
- preostali vorovi (izuzev korijena) su par0cionirani u m >= 0 disjunktnih skupova
pri emu je svaki od 0h skupova takoer stablo, a naziva se jo i podstablom.
Ova denicija je rekurzivna
- denirali smo stablo preko stabla
- postoji li bazni sluaj?
vorovi na koje pokazuje neki vor u stablu se zovu njegovom djecom a on sam njihovim roditeljem
2
T1,,Tm
Odjel za Informa0ku - PMFSTStrukture podataka i algoritmi / 17
STABLA
3
Odjel za Informa0ku - PMFSTStrukture podataka i algoritmi / 17
STABLA
4
Odjel za Informa0ku - PMFSTStrukture podataka i algoritmi / 17
STABLA
5
Odjel za Informa0ku - PMFSTStrukture podataka i algoritmi / 17
STABLA
6
Odjel za Informa0ku - PMFSTStrukture podataka i algoritmi / 17
STABLA
7
Odjel za Informa0ku - PMFSTStrukture podataka i algoritmi / 17
STABLA
8
Odjel za Informa0ku - PMFSTStrukture podataka i algoritmi / 17
BINARNO STABLO
postoje mnoge vrste stablas;h struktura podataka, a nama je najinteresantnija ureeno binarno stablo
Binarno stablo se denira kao konaan skup vorova koji je
- ili prazan
- ili se sastoji od korijena i elemenata dvaju disjunktnih binarnih stabala (lijevog i desnog)
Valja naglasi; da iako moda slike na to ukazuju, binarno stablo nije poseban sluaj stabla ve, iako slian, zapravo vrlo razliit koncept
- stablo
ne moe bi0 prazno uvijek postoji barem korijen svaki vor ima 0,1,2,3... djece
- binarno stablo
moe bi0 prazno svaki vor ima 0, 1 ili 2 djece razlikujemo izmeu lijevog i desnog djeteta
9
Odjel za Informa0ku - PMFSTStrukture podataka i algoritmi / 17
korijen
listlistlist
unutarnji
BINARNO STABLO
U binarnom stablu razlikujemo vorove
- korijen - nema roditelja
- list - nema djece
- unutranji - nije ni korijen ni list
10
Odjel za Informa0ku - PMFSTStrukture podataka i algoritmi / 17
UREENO BINARNO STABLO
Za binarno stablo kaemo da je ureeno ukoliko je svaki njegov vor vrijedi da mu je u lijevoj grani dijete koje je manje od njega, a u desnoj dijete koje je vee od njega.
Manje i vee su rela;vni pojmovi a podrazumijevaju ureaj na stablu.
Ako vor predstavlja studenta, tada se manje/vee moe odnosi;
- na dob (ureaj na N)
- na ime (leksikografski ureaj)
11
Odjel za Informa0ku - PMFSTStrukture podataka i algoritmi / 17
UREENO BINARNO STABLO
12
ureeno binarno stablo
Odjel za Informa0ku - PMFSTStrukture podataka i algoritmi / 17
UREENO BINARNO STABLO
Za vorove u ureenom binarnom stablu kaemo da su na istoj razini ako su jednako udaljeni od korijena.
- Korijen je na razini 0
- njegova djeca su na razini 1
- njegovi unuci su na razini 2
- njegovi praunuci su na razini 3
- ...
13
Odjel za Informa0ku - PMFSTStrukture podataka i algoritmi / 17
UREENO BINARNO STABLO
14
Razina 0
Razina 1
Razina2
Odjel za Informa0ku - PMFSTStrukture podataka i algoritmi / 17
UREENO BINARNO STABLO
Putanja u ureenom binarnom stablu je skup vorova poevi od korijena do nekog lista.
Duljina putanje je razina lista u toj putanji + 1
Dubina (visina) stabla je duljina najdulje putanje
Za ureeno binarno stablo kaemo da je potpuno ako za dubinu stabla (D) i broja vorova u stablu (N) vrijedi
Za ureeno binarno stablo kaemo da je balansirano ako se, za svaki vor u njemu, dubina lijevog i desnog podstabla razlikuje za najvie 1.
15
N = 2D 1
Odjel za Informa0ku - PMFSTStrukture podataka i algoritmi / 17
UREENO BINARNO STABLO - UNOS
Ureeno binarno stablo ne dozvoljava unos duplikata!!
Provjeravamo je li korijen moda null
- ako jest novi vor postaje korijen
- ako nije provjeravamo vrijednost novog vora i ulazimo u lijevu ili desnu granu
- ako nema lijeve/desne grane (null) tu smjetamo novi vor
- postupak ponavljamo dok ne naemo mjesto za novi vor.
16
Odjel za Informa0ku - PMFSTStrukture podataka i algoritmi / 17
UREENO BINARNO STABLO - ISPIS
Poto smo ogranieni irinom prozora konzole ali ne i visinom, to emo ispis modicira; tako da
- desno dijete bude gore umjesto desno
- korijen umjesto gore bude lijevo
- lijevo dijete bude dolje umijesto lijevo
rekurzivno pozivamo funkciju Ispis() koja ovim redoslijedom ispisuje vorove
17
3530
2520
1510
5
20 10 30
5 15 25 35