17
© Odjel za Informa0ku PMFST Strukture podataka i algoritmi 2012/2013 STRUKTURE PODATAKA I ALGORITMI stabla

Stabla

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