Abstrakte datatyper – C#-version

Abstrakte datatyper – C#-version Abstrakte datatyper – C#-version

public.ucn.dk
from public.ucn.dk More from this publisher
29.07.2013 Views

NOEA/IT Programmeringsteknologi/C#.NET FEN/2004-02-20 Endvidere vil stakken som regel have operationer, som kan oplyse, om den er tom, og hvor mange elementer den indeholder. Stakke implementeres ofte ved at anvende en sekvens eller en kædet liste. Kø End kø fungerer efter FIFO (First In Last Out)-princippet. Operationer er bl.a.: • Enqueue(e), som placerer elementet e sidst i køen • Front(), som returnerer det forreste element (det element, som har været i køen længst) uden at ændre køen • Dequeue(), som fjerner (og evt. returnerer) det forreste element (det element, som har været i køen længst) Som stakken har køen som regel også operationer, som kan oplyse, om den er tom, og hvor mange elementer den indeholder. Også køer implementeres ofte ved at anvende en sekvens eller en kædet liste. Dictionary Sekvenser, stakke og køer er eksempler på det, man kalder positionsbasere ADT’er, idet elementer lagres og hentes ud igen i en eller anden rækkefølge. Dicionary eller Map, som ADT’en også kaldes, er der imod værdibaseret, idet elementerne kendes ud fra deres værdi. Dictionary lagrer par af nøgler og værdier: (key, value). Fx kan nøglen være et telefonnummer og værdien et objekt med kontaktoplysninger (navn, adresse, email etc.). Almindelige operationer på et dictionary er: • Insert(key, value), indsætter et nyt element i dictionaryet (ofte med pre-betingelse, at key ikke findes i forvejen) • Contains(key), returnerer sand, hvis dictionaryet indeholder et element par med den angivne key. Ændrer ikke dictionaryet. • Retreive(key), som returner værdien svarende til den angivne key (ofte med prebetingelse, at key findes). Ændrer ikke dictionaryet. • Delete(key), sletter elementparret med den angivne key. Som stakken og køen har dictionary som regel også operationer, som kan oplyse, om den er tom, og hvor mange elementer den indeholder. Endvidere kan der være mulighed for at iterere gennem dictionaryet i nøgleorden. 8/9

NOEA/IT Programmeringsteknologi/C#.NET FEN/2004-02-20 De fleste moderne programmeringssprog (også C#/.NET) tilbyder en række standardklasser og interfaces, som realiserer disse ADT’er. I .NET findes de i namespacet System.Collections og i .NET2 i en forbedret og udvidet version i namespacet System.Collections.Generics. Opgave Undersøg hvilke ADT’er, der tilbydes i System.Collections og/eller System.Collections.Generics. 9/9

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

Endvidere vil stakken som regel have operationer, som kan oplyse, om den er tom, og hvor<br />

mange elementer den indeholder.<br />

Stakke implementeres ofte ved at anvende en sekvens eller en kædet liste.<br />

Kø<br />

End kø fungerer efter FIFO (First In Last Out)-princippet. Operationer er bl.a.:<br />

• Enqueue(e), som placerer elementet e sidst i køen<br />

• Front(), som returnerer det forreste element (det element, som har været i køen længst)<br />

uden at ændre køen<br />

• Dequeue(), som fjerner (og evt. returnerer) det forreste element (det element, som har<br />

været i køen længst)<br />

Som stakken har køen som regel også operationer, som kan oplyse, om den er tom, og hvor<br />

mange elementer den indeholder.<br />

Også køer implementeres ofte ved at anvende en sekvens eller en kædet liste.<br />

Dictionary<br />

Sekvenser, stakke og køer er eksempler på det, man kalder positionsbasere ADT’er, idet<br />

elementer lagres og hentes ud igen i en eller anden rækkefølge. Dicionary eller Map, som<br />

ADT’en også kaldes, er der imod værdibaseret, idet elementerne kendes ud fra deres værdi.<br />

Dictionary lagrer par af nøgler og værdier: (key, value). Fx kan nøglen være et telefonnummer og<br />

værdien et objekt med kontaktoplysninger (navn, adresse, email etc.).<br />

Almindelige operationer på et dictionary er:<br />

• Insert(key, value), indsætter et nyt element i dictionaryet (ofte med pre-betingelse, at key<br />

ikke findes i forvejen)<br />

• Contains(key), returnerer sand, hvis dictionaryet indeholder et element par med den<br />

angivne key. Ændrer ikke dictionaryet.<br />

• Retreive(key), som returner værdien svarende til den angivne key (ofte med prebetingelse,<br />

at key findes). Ændrer ikke dictionaryet.<br />

• Delete(key), sletter elementparret med den angivne key.<br />

Som stakken og køen har dictionary som regel også operationer, som kan oplyse, om den er tom,<br />

og hvor mange elementer den indeholder. Endvidere kan der være mulighed for at iterere<br />

gennem dictionaryet i nøgleorden.<br />

8/9

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

Saved successfully!

Ooh no, something went wrong!