2.8.3 Abstraktit tietotyypit

Preview:

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.

Recommended