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

581325-0 Tietorakenteet, 1. välikoe 3.3.2000/AW

Kirjoita jokaisen vastauspaperisi alkuun kurssin nimi ja kokeen päivämäärä sekä nimesi, henkilötunnuksesi ja allekirjoituksesi. Jokainen vastaus omalle arkilleen!

  1. Selitä täsmällisesti ja havainnollisesti, mitä funktioluokat O(f(n)) tarkoittavat ja miten niitä käytetään algoritmien suoritusajan luonnehdintaan? Miten algoritmien aikavaativuutta päätellään?
                                                                  (9 pistettä)
    
  2. Yhteen suuntaan linkitettyyn tunnussolmuttomaan listaan pidetään osoitinta alkuun ja loppuun. Listan määrittely alkaa:
       public class Lista {
    
         private class Alkio {
           private Comparable tieto;
           private Alkio linkki;
         }
    
         private Alkio alku, loppu;    // listan alku ja loppu
         private int lkm;              // alkioiden lukumäärä
         ...
    
    Toteuta listaoperaatiot:
                                                                  (8 pistettä)
    
  3. Binääripuun määrittely alkaa:
       public class Puu {
    
         private class Solmu {
           Object tieto;
           Solmu vasen, oikea;
         }
    
         private Solmu juuri;
    
         public Puu() {
           juuri = null;
         }
         ...
    
    Ohjelmoi luokkaan metodit
                                                                  (8 pistettä)