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

Veckouppgift för vecka 7

  1. Studera klassen List .

    Utöka klassen med en metod int List::nast_storst(), som returnerar det näst största talet i listan.

    Du får anta i denna uppgift att listan är platt (dvs inte kan innehålla listor som argument) och innehåller heltal. Du får också anta att listan innehåller minst 2 tal.

    Efter exekveringen av nast_storst() ska den anropade listan finnas kvar oförändrad.

    a) Funktionen ska skrivas rekursivt. Du måste använda de primitiva funktionerna på listor på ett relevant sätt i din lösning.

    För denna uppgift ska du i detalj redovisa samtliga steg enligt arbetsmetodiken i föreläsningsanteckningarna.

    b) Funktionen ska skrivas iterativt. Du ska inte använda de primitiva funktionerna på listor i din lösning.

  2. Studera klassen List .

    Skriv en metod void My_list::sam(My_list* l) till en klass My_list som ärver klassen List publikt. Både den anropade listan och listan l är sorterade listor av heltal.

    Metoden ska förändra den anropade listan så att den kommer att innehålla samtliga element ur den anropade listan och samtliga element ur l. Den resulterande listan ska vara sorterad. Uttryckt i andra termer ska de två listorna samsorteras till en. Argumentet l får ej förstöras. Din metod ska utnyttja att de två ursprungliga listorna redan är sorterade.

    Skriv metoden rekursivt. Använd primitiverna som finns definierade i klassen List på ett relevant sätt. Din metod ska med andra ord inte använda sig av explicit pekarhantering.

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: Fri Feb 13 20:30:22 MET 1998