Algoritmer och datastrukturer TF3 Sy
samt
Algoritmer och datastrukturer med objektorienterad programmering

Veckouppgift för vecka 9

  1. Utöka klassen T_n med en metod List* T_n::preorder(), som returnerar en pekare till en lista som innehåller samma info som i trädet, i den ordning som en preorder traversering skulle ha gett.

    Du skall utgå ifrån klasserna T_n respektive List i din uppgiftslösning.

    Redovisa samtlifa steg i arbetsmetodiken.

  2. Ett register till en bok finns lagrad på följande form:

    Uppslagsorden i registret finns lagrade i ett binärt sökträd

    I varje nod i trädet finns, förutom sökordet, en lista som innehåller sidreferenser för detta sökordet. Listan är sorterad efter sidnummer.

    a) Definiera en klass Register som representerar ett register på ett binärt sökträd enligt ovan. Du skall skriva det binära sökträdet som en härledd klass från binära träd och skall utgå ifrån klasserna T_n respektive List i din uppgiftslösning. Du får modifiera List men inte T_n.

    I denna deluppgift räcker det med att du anger ett riktigt klasshuvud.

    Nedanståernde bild kan vara till hjälp

    b) Skriv en metod void Register::satt_in(char*,int), där char* representerar en pekare till ett uppslagsord ch int representerar ett sidnummer. Metoden ska sätta in sidan på rätt ställe i listan på rätt uppslagsord. Om upslagsordet inte redan finns i trädet, ska det skapas.

    Du behöver heller ej ta hänsyn till å, ä och ö.

    Om du utökar List med nya metoder får du själv välja om du vill använda de redan existerande primitiverna eller skriva din/dina metoder mha pekare. Ledning: Beroende på hur du löser ditt problem kan du eventuellt komma fram till att data-fältet i T_n inte fyller någon funktion i uppgiftslösningen.


Anvisningar

Redovisa programkod, samt där så krävs i uppgiftsformulering de olika stegen i arbetsmetodiken. Därutöver krävs ingen dokumentation.

För handledning på denna uppgift hänvisas till Datortekniks jourhavande handledare eller Fredriks handledningstider


Uppgifterna lämnas in enligt anvisningarna i kursplanen.

Notera att uppgifter som lämnas in på annat sätt, eller vid senare tidpunkt, inte kommer att beaktas.

Försättsblad finns här.


Fredrik Larsson <fredrikl@DoCS.UU.SE>
Anders Berglund <Anders.Berglund@DoCS.UU.SE>
Last modified: Wed Feb 18 16:31:19 MET 1998