001    /**
002     * Esimerkki linkitetytstä listasta
003     * @author Vesa Lappalainen
004     * @version 1.0, 16.03.2002
005     */
006    
007    public class LinLista {
008    
009      /**
010       * Linkitetyn listan yksi alkio.  Sisältää datan ja viitteen seuraavaan.
011       */
012      static public class Alkio {
013        private int i;
014        private Alkio seuraava;
015        public Alkio(int i) { this.i = i; seuraava = null; }
016        public int getI() { return i; }
017      }
018    
019      private Alkio eka;
020      private Alkio viimeinen;
021    
022      public LinLista() { eka = null; viimeinen = null; }
023      public LinLista(int koko) { this(); }
024    
025      public void lisaa(int i) {
026        Alkio uusi = new Alkio(i);
027        if ( eka != null ) viimeinen.seuraava = uusi;
028        else eka = uusi;
029        viimeinen = uusi;
030      }
031    
032      public String toString() {
033        StringBuffer s = new StringBuffer("");
034        for (Alkio i=eka; i!=null; i = i.seuraava )
035          s.append(" " + i.getI());
036        return s.toString();
037      }
038    
039      public static void main(String[] args) {
040        LinLista luvut = new LinLista();
041        try {
042          luvut.lisaa(0); luvut.lisaa(2);
043          luvut.lisaa(99);
044        } catch ( Exception e ) {
045          System.out.println("Virhe: " + e.getMessage());
046        }
047        System.out.println(luvut);
048      }
049    }