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 }