Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

2.8.3 Abstraktit tietotyypit

Samankaltaiset esitykset


Esitys aiheesta: "2.8.3 Abstraktit tietotyypit"— Esityksen transkriptio:

1 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 kuvataan vain ne ominaisuudet, jotka käytön kannalta ovat tarpeellisia. Tällaisia ominaisuuksia ovat mm. tietotyypit ja tietoja käsittelevät operaatiot.

2 Abstraktit tietotyypit…
Tarkastellaan kolmea abstraktia tietotyyppiä: lista, erikoistapauksia pino ja jono puu, erikoistapauksena binääripuu graafi. Kaikki em. kolmen tyypin toteutuksessa käytetään yleensä edellä tarkasteltuja konkreettisia tietorakenteita.

3 Abstraktit tietotyypit…
Lista dynaaminen rakenne, joka koostuu alkioista alkiot peräkkäin jokaisella alkiolla paitsi viimeisellä on seuraaja jokaisella alkiolla paitsi ensimmäisellä on edeltäjä.

4 Abstraktit tietotyypit…
Lista listan operaatioita: alkion lisäys ja poisto mielivaltaiseen kohtaan listan tyhjyyden tarkistus listan ensimmäisen alkion ja listan loppuosan palauttavat operaatiot Myös voidaan sanoa, että lista on tyhjä lista tai alkio, jota seuraa lista

5 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

6 Abstraktit tietotyypit…
Listan peräkkäiskäsittely Ota käsiteltäväksi listan ensimmäinen alkio WHILE ei olla listan lopussa DO käsittele listan alkio siirry seuraavaan alkioon ENDWHILE

7 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.

8 Listan toteutus vektorilla tai linkitetyllä rakenteella Varsinkin jos alkioiden lukumäärä vaihtelee paljon, kannattaa käyttää linkitettyä dynaamista rakennetta.

9 Listan toteutus … Vektoritoteutus: pituus: A: k A[1] A[2] … A[k] …
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[k] A[n]

10 Listan toteutus … Alkion lisääminen listaan paikkaan, 1 <= i <=k+1. MODULE lisää (lista L, alkio a, indeksi i) L.pituus:=L.pituus +1 IF 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] ENDFOR L.A[i]:=a ENDIF ENDMODULE

11 Lisäys listan loppuun, k=3, n=6. Alkutilanne:
Lopputilanne: 3 A[1] A[2] A[3] A[4] A[5] A[6] 4 A[1] A[2] A[3] A[4] A[5] A[6]

12 Lisäys listan keskelle, i=2, k=3, n=6. Alkutilanne:
Lopputilanne: 3 A[1] A[2] A[3] A[4] A[5] A[6] 4 A[1] A[2] A[3] A[4] A[5] A[6]

13 Puu (tree) lineaarisen listan yleistys: alkiolla voi olla monta seuraajaa. näin voidaan esittää hierarkkisia rakenteita.

14 Puu (tree)… solmu kaari solmu kaari

15 Puu (tree)… sisäsolmuja juuri lehti

16 Puu (tree)… Vanhempi- lapsi: solmu ja sen seuraaja seuraaja solmu

17 Puu (tree)… polku polku polku

18 Puu (tree)… polun pituus: polulla olevien kaarien lukumäärä

19 Puu (tree)… puun korkeus: pisimmän polun pituus juuresta lehtisolmuun

20 Juurisolmun yksi alipuu
Puu (tree)… Alipuut eli poikapuut S Solmun S yksi alipuu Juurisolmun yksi alipuu

21 Puu (tree)… solmun aste: seuraajien lukumäärä Aste 1 Aste 3

22 Puu (tree)… k-haarainen puu (k-ary tree): puun jokaisella solmulla on tarkalleen k alipuuta, joista osa voi olla tyhjiä. Siten k-haarainen puu on joko tyhjä puu, jossa ei lainkaan solmuja puussa on juurisolmu, jota seuraa k alipuuta, jotka ovat k-haaraisia puita.

23 Puu (tree)… Täydellinen k-haarainen puu: puun jokaisen solmun, paitsi lehtisolmujen, kaikki k alipuuta ovat ei-tyhjiä.

24 Puu (tree)… Esimerkki, puu P: ei-täydellinen ariteetti 4
solmun R edustama puu on Q:n alipuu puun korkeus (P-S) on 4. P Q R S

25 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.


Lataa ppt "2.8.3 Abstraktit tietotyypit"

Samankaltaiset esitykset


Iklan oleh Google