Laste ned presentasjonen
Presentasjon lastes. Vennligst vent
PublisertEirik Nygård Endret for 9 år siden
1
INF 295 Algoritmer og datastrukturer Forelesning 6 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
2
Abstrakte datatyper En abstrakt datatype er en samling objekter sammen med et samling operasjoner som kan gjøres med objektene. En abstrakt datatype er en matematisk abstraksjon Det er ikke gitt hvordan operasjonene skal implementeres Eksempler på ADT Lister, Mengder, Bager, Stakker, Køer og tilhørende operasjoner
3
Java og ADT Klassen gir mulighet for å vise operasjoner og samtidig skjule implementering For å gjøre det mulig å implementere samme ADT på forskjellige måter, kan vi bruke et Interface.
4
ADT - Liste Liste modellerer en liste av elementer A 1,A 2, A 3,..., A n Elementene i lista kan være objekter som representerer hva som helst: Studenter, Svømmere, Inventar Vi kan lage forskjellige ADT for liste avhengig av hvilke operasjoner som skal kunne gjøres på lista Operasjonene kan defineres i et grensesnitt (interface)
5
ADT – Liste
6
Listeimplementasjon med array settInn: er O(n)*. Alle elementer etter den vi setter inn må flyttes slett: O(n) finn: O(n)* hent: O(1) skrivListe: O(n) erTom: O(1) slettAlt:O(1) Arrayen har ikke dynamisk størrelse * Hvis arrayen holdes sortert, kan finn bli O(log n) – Hvordan, får dette negative konsekvenser for settInn?
7
Lenkede lister
8
settInn: er O(1)*. slett: O(1)* finn: O(n) hent: O(n) skrivListe: O(n) erTom: O(1) slettAlt:O(1) * Hvis vi allerede har funnet stedet der elementet skal inn er tiden O(1) – Hvis vi må finne stedet først, blir tiden O(n), men vi må ha tak i noden foran. Spesialtilfelle – hvis vi setter inn og tar ut først i lista blir settInn og slett svært raske.
9
Lenkede lister med hode
10
Andre lenkede liste
11
Alternative lenkede lister Lenkede lister med hode Sirkulære lenkede lister Dobbelt lenkede lister
12
Anvendelser Polynom ADT Radixsortering Som erstatning for sparse arrays- multiliste
13
Multiliste
Liknende presentasjoner
© 2024 SlidePlayer.no Inc.
All rights reserved.