Kopica

Kopica

Avtor: Karmen Perko

Podatkovne strukture

Podatkovna struktura je sistematični način, kako organizirati skupino podatkov.

Za vsako podatkovno strukturo potrebujemo postopke za vstavljanje, brisanje, iskanje...

Podatkovne strukture ločimo glede na to, katere podatke dobimo iz nje in na kakšen način.

Primeri podatkovnih struktur so seznami, tabele, drevesa, kopice ...

Kopica

Kopico uvrščamo med levo poravnane urejene drevesne podatkovne strukture. Kopica ima na vozliščih elemente, ki so urejeni po velikosti, zato rečemo, da je urejena. Levo poravnano drevo pa pomeni, da smo vanj vstavljali elemente od leve proti desni ter hkrati nismo začeti zapolnjevati nekega sloja, če prejšnji sloj še ni bil zapolnjen.

Kopica je uporabna predvsem zaradi možnosti hitrega dostopa do največjega oz. najmanjšega elementa, kadar imamo podatke urejene po velikosti.

Lastnosti kopice:

  1. Višina kopice je odvisna od števila vozlišč . Izračunamo jo

  2. Število listov je tudi odvisno od števila vozlišč:

    (celoštevilsko deljenje z ).

Primer: Kolikšna je višina spodnje kopice in koliko ima listov?

(Lastnosti.jpg)
Kopica
  1. Število vozlišč:
  2. Višina:
  3. Število listov:

Vrste kopic

Najvišje postavljeni element kopice imenujemo oče ali koren kopice, nižje postavljeni so sinovi.

Kopice ločimo glede na urejenost vozlišč.

MINIMALNA KOPICA je kopica, za katero velja, da je element v korenu vedno manjši od elementov njegovih sinov, obe poddrevesi korena pa sta spet minimalni kopici.

(MinKopica.jpg)
Primer minimalne kopice

MAKSIMALNA KOPICA je kopica, za katero velja, da je element v korenu vedno večji od elementov njegovih sinov, obe poddrevesi korena pa sta spet maksimalni drevesi.

(MaxKopica.jpg)
Primer maksimalne kopice

MAKSIMALNA IN MINIMALNA KOPICAje kopica, katere element v korenu je enak elementom njegovih sinov, obe poddrevesi korena pa sta prav tako maksimalni in minimalni drevesi.

(MinMax_kopica.jpg)
Primer maksimalne in minimalne kopice

Spodaj so primeri dreves. Prva skupina predstavlja kopice, druga ne.

(primeri_kopic.jpg)
Primeri kopic
(niso_kopice.jpg)
Primeri niso kopice - niso levo poravnani.

Predstavitev kopice s tabelo

Tabela je pri veliki količini podatkov preglednejša in je zelo učinkovita predvsem pri opreacijah urejanja. Če želimo kopico predstaviti s tabelo, upoštevamo naslednja pravila:

  1. Koren/oče je prvi element tabele (na mestu z indeksom nič je lahko kar koli, saj tega mesta ne štejemo).
  2. Če je vozlišče kopice na -tem mestu, je njegov levi sin na mestu , desni pa na mestu .
  3. Vozlišče na -tem mestu ima torej svojega očeta na mestu (celoštevilsko deljenje).

Primer:

(primer_kopice.jpg)
kopica

Tabela, ki ustreza zgornji kopici:

indeks:0123456
vrednost vozlišča:421089435

Vstavljanje elementov

Vstavljanja elementa se lotimo tako, da element vstavimo v list drevesa na -to mesto. Nov element moramo razporediti po kopici navzgor (primerjati ga moramo z očetom), dokler novonastalo drevo ne ustreza urejenosti kopice. To drevo je ponovno urejena kopica.

Brisanje maksimalnega elementa

Naj ima kopica na prvem mestu maksimalni element. Vzemimo ga iz kopice. S tem smo spremenili kopico. Popravimo jo tako, da na mesto, kjer manjka element - na prvo mesto - postavimo zadnji element v tabeli. Po že znanem postopku nato uredimo kopico.

Spodnja slika prikazuje primer kopice, ki smo jo uredili po odvzemu maksimalnega elementa.

(primer.jpg)
Odvzem maksimalnega elementa

Naloga 1

Kaj je to kopica?

Levo poravnano obrezano drevo.
Levo poravnano urejeno drevo.
Lepo urejeno drevo.


Nazaj Naprej

Odgovor je pravilen.

Naprej

Odgovor je napačen.

Poskusite ponovno.

Naloga 2

Katere skupine kopic pozanmo?


Nazaj Preveri Naprej

Odgovor je pravilen.
Naprej

Odgovor je napačen.
Poskusite ponovno.

Naloga 3

Označi pravilne trditve.


Nazaj Preveri Naprej

Odgovor je pravilen.
Naprej

Odgovor je delno pravilen.
Poskusite ponovno.

Odgovor je napačen.
Poskusite ponovno.

Naloga 4

Katero vrednost ima oče v kopici:

(primer_kopice.jpg)

Preveri

Nazaj Naprej

Pravilen odgovor.
Naprej

Odgovor ni pravile.
Poskusite ponovno.

Naloga 5

Vsak začetek stavka v levem stolpcu dopolnite z ustreznim nadaljevanjem na desni strani.

Višina kopice
Število listov
Oče na mestu
.
.
levi sin na mestu .


Nazaj Preverite Naprej

Pojmi so pravilno povezani.
Naprej

Pojmi so narobe povezani.
Poskusite ponovno.

VIRI PODATKOV IN SLIK

  • http://penelope.fmf.uni-lj.si/r2wiki/images/4/4b/KOPICA2.pdf
  • http://www.nauk.si/materials/4630/out/#state=9
  • http://www.nauk.si/materials/1318/out/#state=55
  • http://wiki.fmf.uni-lj.si/wiki/Kopica
0%
0%