/***************************************************************/ /* Prof. Dr. Gregor Büchel */ /* Source : Evket.java */ /* Klasse fuer einfach vorwaerts verkettete Listen */ /* Stand : 29.04.2002 */ /***************************************************************/ import java.io.*; class Evket { String wort;/* Knotenfaerbung */ Evket nf; /* Referenz (Zeiger) auf Nachfolger-Knoten */ /* Hinweis: Klasse Evket arbeitet mit dem Standardkonstruktor */ /* Färben eines Knotens */ int setFarb(String w1) {int i=1; wort=w1; return i; } /* Hinzufügen von Knoten durch Anhängen am Listen-Ende */ Evket anhaeng(String w1) {Evket neu=null; if (this.nf==null) {neu=new Evket(); neu.setFarb(w1); } else {System.out.println("Anhaengen: Verkettungsfehler: "+this+" hat Nachfolger "+this.nf+" !"); } return neu; } /* Hinzufügen von Knoten durch Einketten nach der aktueller Instanz */ int einhaeng(String w1) {int i=1; Evket neu=null; Evket next; neu=new Evket(); neu.setFarb(w1); if (this.nf!=null) {next=this.nf; this.nf=neu; neu.nf=next; } else {i=2; this.nf=neu; } return i; } /* Hinzufügen eines Knotens als neuer Anker. Annahme: Die aktuelle */ /* Instanz i s t der Anker-Knoten */ Evket ankneu(String w1) {Evket neu=null; neu=new Evket(); neu.setFarb(w1); neu.nf=this; return neu; } /* Bestimmen der Knotenanzahl der Liste. Annahme: Die aktuelle */ /* Instanz i s t der Anker-Knoten */ int size() {Evket akt=null; int k=0; akt=new Evket(); akt=this; do {k=k+1; akt=akt.nf; } while (akt!=null); return k; } /* Methode zum Ausgeben der Liste ab der aktuellen Knoteninstanz */ /* noch ohne Kontrolle auf leere Liste (dafür: try-catch-Block */ /* einrichten ! ) */ int evaus() {int rc=1; /* rc=1 <=> regulaerer Fall, rc<0 : Fehlerfaelle */ int i=1; Evket akt; akt=this; do { System.out.println(i+". Knoten: -> "+akt.wort); akt=akt.nf; i=i+1; } while(akt!=null); return rc; } /* Methode zum Positionieren auf den k-ten Knoten der Liste */ /* Die Knoten werden von k=1 (=Anker) bis k=n (=letzter */ /* Knoten gezählt */ Evket pos(int k, Evket ank) {Evket kknot=null; int i, n; kknot=new Evket(); if (k<1) {System.out.println("Fehler bei pos(): k = "+k+" < 1 !!!"); return kknot; } kknot=ank; n=ank.size(); if (k>n) {System.out.println("Fehler bei pos(): k = "+k+" > size = "+n); return kknot; } for (i=0; i