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

Vi vil prøve at lave en metode mere, som arbejder på sekvenser. Metoden skal tælle antal store<br />

tal i en sekvens:<br />

Vi giver den navnet countBigOnes. Metoden skal returnere et heltal - nemlig antallet af store tal -<br />

og have en sekvens som parameter. Vi vedtager, at i denne sammenhæng er et tal stort, hvis det<br />

er større end 20.<br />

En algoritme, som løser opgaven, kan udvikles udfra følgende idé: Kik på hvert element i<br />

sekvensen, hvis tallet er større end 20, så tæl en variabel op med én.<br />

Alle elementer skal undersøges, så der er tydeligvis tal om en sweep-algoritme. Elementerne skal<br />

ikke ændres, så vi kan bruge foreach-løkken i <strong>C#</strong>:<br />

Placeres denne metode i klassen TestSeqInt kan den kaldes fra Main() med:<br />

Console.WriteLine(CountBigOnes(sekvens);<br />

Andre abstrakte <strong>datatyper</strong><br />

public static int CountBigOnes(ArrayList s)<br />

{<br />

int antal= 0;<br />

foreach(int x in s)<br />

if(x>20) antal++;<br />

return antal;<br />

}<br />

I det følgende vil vi kort kikke på en række andre hyppigt anvendte abstrakte <strong>datatyper</strong>.<br />

Stak<br />

Stakken er en abstrakt datatype, som gemmer data efter LIFO (Last In First Out)-princippet. De<br />

almindelige operationer er:<br />

• Push(e), som placerer elementet e øverst på stakken<br />

• Top(), som returner det seneste placerede element fra stakken uden at ændre stakken<br />

• Pop(), som fjerner (og evt. returnerer) det seneste placerede element fra stakken.<br />

7/9

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

Saved successfully!

Ooh no, something went wrong!