Programutvikling V2015 — øvingsoppgave for uke 5

Oppgave 1

Nodene i en sammenkjedet liste er definert slik:

class Node
{
  private int info;
  Node neste;

  public Node( int data )
  {
    info = data;
    neste = null;
  }

  public int getInfo() { return info; }

  public void setInfo( int nyVerdi ) { info = nyVerdi; }
}

Klassen Heltallsliste skal defineres slik:

class Heltallsliste
{
  private Node første; //peker til første listenode

  public Heltallsliste() { første = null; }

  public Node finn( int n ) { ... }  //returnerer peker til
                                     //første node med verdi lik n

  public boolean fjern( int n ) { ... } //fjerner første node med
         // verdi lik n. Returverdien indikerer om noden ble
         // funnet og fjernet eller ikke.

  public void settInnForrest( int n ) { ... } //setter inn verdien n
                                            //i en ny node forrest

  public void settInnForrest( Node ny ) { ... } //setter inn
                                                  //noden ny forrest

  public void settInnBakerst( int n ) { ... }  //setter inn verdien n
                                               //i en ny node bakerst

  public void settInnBakerst( Node ny ) { ... }  //setter inn
                                                  //noden ny bakerst

  public void settInnSortert( int n ) { ... } //setter inn verdien n
                 //i en ny node som plasseres riktig i sortert liste

  public void settInnSortert( Node ny ) { ... } //setter inn
       //verdien n i en ny node som plasseres riktig i sortert liste

  public void sorter() { ... }  //sorterer lista med nodenes verdier
                                //i voksende rekkefølge

  public void dubliser() { ... } //dubliserer hver node i lista slik
   //at f.eks. lista 2, 5, 8, 4 blir til lista 2, 2, 5, 5, 8, 8, 4, 4

  public void slett() { ... } //sletter alle nodene i lista

  public Heltallsliste reversertKopi() { ... }  //returnerer et
                   //listeobjekt som er en kopi av denne liste,
                  //men med nodene i reversert rekkefølge. Eks:
                  //Opprinnelig liste: 2, 5, 8, 4.
                  //Reversert kopi: 4, 8, 5, 2.

  public void reverser() { ... } //reverserer nodenes rekkefølge

  public void skrivListe( JTextArea elementer ) { ... } //skriver ut
          //elementene i lista på en linje i tekstområdet elementer.
}

Programmer metodene som er beskrevet i Heltallsliste-klassen. Husk å ta hensyn til spesialtilfeller som tom liste og liste med bare én node.

Lag et program som tester ut den definerte listeklassen. Programmet skal opprette en liste og ha kommandoer for å

Ved innsetting på sortert plass, må lista sorteres før det gjøres kall på listemetoden settInnSortert. Skriv ut listeinnholdet etter hver endring, slik at du får kontrollert at metodene virker som de skal. Nedenfor er det vist en mulig utforming av skjermbilde.

Løsningsforslag

Klikk her