230 likes | 514 Views
KOPICA ( Heap ). AVTORJI: Nevena Zemljič-Blagojević Nina Otoničar Milica Krasić. KAJ JE KOPICA?.
E N D
KOPICA(Heap) AVTORJI: Nevena Zemljič-Blagojević Nina Otoničar Milica Krasić
KAJ JE KOPICA? • Kopica je levo poravnano dvojiško drevo, pri katerem je oče (koren) vedno večji ( oz. manjši pri minimalni kopici) ali enak od svojih sinov, hkrati pa morajo biti obe poddrevesi korena že kopici. • Uporabljamo jo zaradi hitrega dostopa do največjega oziroma najmanjšega elementa, kadar imamo podatke urejene po velikosti.
LASTNOSTI KOPICE • Višina kopice : • Višina kopice je odvisna od števila vozlišč (n). • Leva poravnanost! • Število listov: • V kopici je (n+1)//2 listov. • višina kopice: 3 • število listov: 3
MAKSIMALNA KOPICA • Kopico za katero veljajo naslednje lastnosti: • Element v korenu je vedno večji od elementov njegovih sinov, • obe poddrevesi korena morata biti maksimalni kopici. imenujemo maksimalna kopica. Primer:
MINIMALNA KOPICA • Kopico za katero veljajo naslednje lastnosti: • Element v korenu je vedno manjši od elementov njegovih sinov, • obe poddrevesi korena morata biti minimalni kopici. imenujemo minimalna kopica. Primer:
Maksimalna in minimalna kopica • Kopico za katero veljajo naslednje lastnosti: • Element v korenu je enak od elementov njegovih sinov, • obe poddrevesi korena morata biti maksimalni in minimalni kopici, imenujemo maksimalna in minimalna kopica. Primer:
SPOJI KOPICI • Da dve kopici lahko spojimo mora veljati naslednje: • leva kopica mora biti polna, • desna kopica mora biti levo poravnana, • obe kopici morata imeti enako višino. • Dve kopici spojimo z enim poljubnim elementom, ki postane koren teh dveh kopic: • nato ta element potapljamo (ga primerjamo s sinovi), • to ponavljamo dokler element s katerimi smo združili kopici ne najde svoje mesto v tabeli. • Ta postopek nam pomaga pri metodi sestavi iz tabele, pri kateri spajamo kopice.
IMPLEMENTACIJARAZREDA • METODA SESTAVI IZ TABELE • Dana je tabela s poljubnimi elementi, • predpostavimo, da so listi že kopice, • prvi oče je na len(tabela)//2, drugi na len (tabela)//2-1,… zadnji pa na prvem mestu v tabeli • preverimo če je oče manjši od svojih sinov, • če je ga zamenjamo (potapljamo element) • postopek nadaljujemo dokler ne dobimo kopico.
METODA ODSTRANI ELEMENT • Odstranimo maksimalni (prvi) element v tabeli, • tabela se skrajša za en element. • zadnji element v tabeli (zadnji list kopice) pride na prvo mesto, • in element, ki je po novem na prvem mestu potapljamo, dokler ne najde svoje mesto v tabeli.
METODA VSTAVI ELEMENT • Element vstavimo na konec tabele (v list kopice), • ga primerjamo z očetom, • če je večji od očeta ga zamenjamo z očetom, • Ta postopek ponavljamo dokler element ne najde svoje mesto v tabeli.
VIRI IN LITERATURA • KNJIGE: • Jernej Kozak: Podatkovne strukture in algoritmi, leto 1986 • INTERNET: • http://wiki.fmf.uni-lj.si/wiki/Kopica • http://sl.wikipedia.org/wiki/Kopica • http://rts.uni-mb.si/misc/aps/I.html • http://www-mat.pfmb.uni-mb.si/personal/taranenko/attachments/145_kopica.pdf • http://penelope.fmf.uni-lj.si/r2wiki/index.php/3.Seminarska_naloga/Kopica