Helsingin yliopisto / Tietojenkäsittelytieteen laitos / Tietorakenteet / Copyright © 2001 Arto Wikla.

581325-0 Data strukturer, första deltenten 12.3.2001/AW

Skriv namnet på kursen, datum för tenten, samt ditt namn, personnummer, och din underskrift på varje papper. Skriv varje svar på ett skilt papper!


  1. Förklara exakt och åskådliggör vad som menas med funktionsklasserna O(f(n)) och hur de kan användas för att beskriva algoritmers exekveringstid. Ge exempel på algoritmer som tillhör klasserna O(1), O(log n), O(n), O(n2) och O(2n). Motivera ditt svar.
                                                                  (7 poäng)
    
    

  2. Ett tåg presenteras som en dubbel-länkad lista. Lokomotivet och vagnarna är strängar. Programmera klassen Tåg med operationerna:

    Specifiera hur metoderna beter sig även i händelse av fel.

    Skapa med hjälp av klassen Tåg biblioteksklassen Redskap åt förmannen på stationen. Klassen bör innehålla följande redskap:

    OBS: redskapen skall implementeras endast med hjälp av de publika metoderna ovan.
                                                                  (7 poäng)
    
    
  3. Specifiera begreppen lista, stack och kö som abstrakta datatyper.
                                                                  (4 poäng)
    
    
    

  4. Ett binärträd föreställer ett släktträd där roten består av 'jag'. Rotens subträd är 'mamma', 'pappa' osv. Specifikationen av trädet börjar så här:
       public class FamiljeTrad {
    
         private class Slaktning {
           private String namn;
           private int födelseår;
           private Slaktning mamma, pappa;
         }
    
         private Slaktning rot;;
    
         public FamiljeTrad() {
           rot = null;
         }
         ...
    
    
    Programmera klassens metoder (specifiera funktionen också vid fel).

                                                                  (7 poäng)