29.07.2013 Views

Abstrakte datatyper – C#-version

Abstrakte datatyper – C#-version

Abstrakte datatyper – C#-version

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

NOEA/IT <strong>–</strong> Programmeringsteknologi/<strong>C#</strong>.NET FEN/2004-02-20<br />

<strong>Abstrakte</strong> Datatyper<br />

Denne note introducerer kort begrebet abstrakt datatype (ADT) og beskriver den abstrakte<br />

datatype sekvens eller (ordnet) liste.<br />

Datastrukturer<br />

En datastruktur er en systematisk måde at organisere en mængde af data på. Datastrukturer kan<br />

være persistente, dvs. lagret på disk eller interne, dvs. lagret i memory. Vi betragter her kun<br />

interne datastrukturer. Endvidere skelner man mellem statiske og dynamiske datastrukturer. En<br />

statisk datastruktur har en fast størrelse under hele programafviklingen, mens en dynamisk<br />

datastruktur kan ændre størrelse efter behov under programudførelsen.<br />

En datastruktur er en fysisk organisering af en datamængde.<br />

Klassiske datastrukturer er bl.a.:<br />

• Array <strong>–</strong> statisk<br />

• Kædet liste <strong>–</strong> dynamisk<br />

• Træstruktur <strong>–</strong> oftest dynamisk<br />

• Hashtabel <strong>–</strong> kan være statisk eller dynamisk<br />

Vi ser i første omgang kun på arrays. Et array er et sammenhængende segment af memory, hvor<br />

elementerne er indekserede, dvs. kan tilgås udfra deres position. Elementerne er af samme type.<br />

Datastrukturer har brug for en række algoritmer til indsættelse, sletning, søgning af data. En<br />

datastruktur samt algoritmer til at operere på dataene er en realisering af en abstrakt datatype.<br />

Datatyper<br />

Generelt er en datatype givet ved en værdimængde og et sæt af tilhørende operationer. Endvidere<br />

er der behov for en datastruktur til at repræsentere datatypens værdimængde:<br />

• Værdimængde (Hvilke værdier kan typen indeholde?)<br />

• Operationer (Hvilke operationer er lovlige at udføre på elementer af<br />

datatypen?)<br />

• Datarepræsentation (Hvordan repræsenteres datatypen i hukommelsen)<br />

2/9

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!