Upload
bonita
View
32
Download
0
Embed Size (px)
DESCRIPTION
2.8.3 Abstraktit tietotyypit. Edellä tarkasteltiin kolmea konkreettista tietorakennetta: tietue, taulukko ja linkitetty rakenne. Niiden avulla voidaan määritellä abstrakteja tietorakenteita (tai –tyyppejä), joille on ominaista se, että käyttäjälle - PowerPoint PPT Presentation
Citation preview
2.8.3 Abstraktit tietotyypit
Edellä tarkasteltiin kolmea konkreettista tietorakennetta: tietue, taulukko ja linkitettyrakenne. Niiden avulla voidaan määritelläabstrakteja tietorakenteita (tai –tyyppejä),joille on ominaista se, että käyttäjällekuvataan vain ne ominaisuudet, jotka
käytönkannalta ovat tarpeellisia. Tällaisiaominaisuuksia ovat mm. tietotyypit ja tietojakäsittelevät operaatiot.
Abstraktit tietotyypit…
Tarkastellaan kolmea abstraktia tietotyyppiä:lista, erikoistapauksia pino ja jonopuu, erikoistapauksena binääripuugraafi.
Kaikki em. kolmen tyypin toteutuksessa käytetään yleensä edellä tarkasteltujakonkreettisia tietorakenteita.
Abstraktit tietotyypit…
Listadynaaminen rakenne, joka koostuu alkioistaalkiot peräkkäinjokaisella alkiolla paitsi viimeisellä on seuraajajokaisella alkiolla paitsi ensimmäisellä on edeltäjä.
Abstraktit tietotyypit…
Listalistan operaatioita:
alkion lisäys ja poisto mielivaltaiseen kohtaanlistan tyhjyyden tarkistuslistan ensimmäisen alkion ja listan loppuosan palauttavat operaatiot
Myös voidaan sanoa, että lista ontyhjä lista taialkio, jota seuraa lista
Abstraktit tietotyypit…
Listaesimerkkejä
sana on kirjainten muodostama lista
lause on sanojen muodostama lista
luku on numeroiden muodostama lista
puhelinluettelo on henkilötietueiden muodostama lista, jossa kukin tietue sisältää esim. nimen, osoitteen ja puhelinnumeron
Abstraktit tietotyypit…
Listan peräkkäiskäsittely
Ota käsiteltäväksi listan ensimmäinen alkioWHILE ei olla listan lopussa DO
käsittele listan alkiosiirry seuraavaan alkioon
ENDWHILE
Abstraktit tietotyypit…
Listan erikoistapauksia:jono (queue): lisäys ja poisto listan eri päistä. Alkiot poistetaan samassa järjestyksessä kuin ne on lisätty (vrt. kaupan kassajono). Ns FIFO-periaate.pino (stack): lisäys ja poisto samaan päähän. Poistetaan aina viimeksi lisätty alkio. Ns. LIFO-periaate.
2.8.3.2 Listan toteutus
vektorilla tailinkitetyllä rakenteella
Varsinkin jos alkioiden lukumäärä vaihtelee
paljon, kannattaa käyttää linkitettyä dynaamista rakennetta.
Listan toteutus …
Vektoritoteutus:Määritellään tietue, jossa kaksi kenttää:pituus (listan alkioiden lkm) ja vektori A,jossa on n alkiota. Lista on tietueessa L:
pituus:
A:
k
A[1] A[2] A[n]…… A[k]
Listan toteutus …
Alkion lisääminen listaan paikkaan, 1 <= i <=k+1.
MODULE lisää (lista L, alkio a, indeksi i)L.pituus:=L.pituus +1IF i=L.pituus THEN L.A[L.pituus]:=a (* lisäys loppuun *)ELSE (* lisäys keskelle *)
FOR x:=L.pituus, L.pituus-1,…, i+1 DO L.A[x]:=L.A[x-1]
ENDFORL.A[i]:=a
ENDIFENDMODULE
Lisäys listan loppuun, k=3, n=6.Alkutilanne:
Lopputilanne:
3
A[2] A[6]A[5]A[3] A[4]A[1]
4
A[2] A[6]A[5]A[3] A[4]A[1]
Lisäys listan keskelle, i=2, k=3, n=6.Alkutilanne:
Lopputilanne:
3
A[2] A[6]A[5]A[3] A[4]A[1]
4
A[2] A[6]A[5]A[3] A[4]A[1]
2.8.3.3 Puu (tree)
lineaarisen listan yleistys: alkiolla voi olla monta seuraajaa.näin voidaan esittää hierarkkisia rakenteita.
Puu (tree)…
solmu
kaari
solmu
kaari
Puu (tree)…
juurisisäsolmuja
lehti
Puu (tree)…
solmuseuraajaVanhempi
-lapsi: solmu ja senseuraaja
Puu (tree)…
polku
polkupolku
Puu (tree)…
polun
pituus:
polulla
olevien
kaarien
lukumäärä
polun pituus 3polun pituus 2
Puu (tree)…
puun korkeus:pisimmänpolun
pituusjuurestalehtisolmu
un puun korkeus 4
Puu (tree)…
S
Alipuut eli
poikapuut
Solmun S yksi alipuu
Juurisolmun yksi alipuu
Puu (tree)…
solmun
aste:
solmun
seuraajien
lukumäärä
Aste 3
Aste 1
Puu (tree)…
k-haarainen puu (k-ary tree): puun jokaisellasolmulla on tarkalleen k alipuuta, joista osa voi olla tyhjiä.
Siten k-haarainen puu on jokotyhjä puu, jossa ei lainkaan solmujapuussa on juurisolmu, jota seuraa k alipuuta, jotka ovat k-haaraisia puita.
Puu (tree)…
Täydellinen k-haarainen puu: puun jokaisen solmun, paitsi lehtisolmujen, kaikki k alipuuta ovat ei-tyhjiä.
Puu (tree)…
Esimerkki, puu P:ei-täydellinenariteetti 4solmun R edustama puu on Q:n alipuupuun korkeus (P-S) on 4.
P
Q
R
S
Puu (tree)…
Puun korkeus rekursiivisesti:
jos puu on tyhjä tai koostuu vain juurisolmusta, p:n korkeus on 0.jos p:llä on vähintään yksi ei-tyhjä alipuu, puun p korkeus on 1 + max (h1, h2, …, hk), missä hi on puun p i:nnen alipuun korkeus.