import java.util.StringTokenizer; class Listas { public static void main(String A[]) { ManejaListas ML = new ManejaListas(); } } class ManejaListas extends Lectura { NodoIndice Inicio = null, ultimo = null; ManejaListas() { LeeFrases(); } void Almacena(NodoFrase NF) { NodoIndice NI = new NodoIndice(NF); if( Inicio == null) Inicio = NI; else ultimo.Sig = NI; ultimo = NI; } void SeparaFrase(String Linea) { NodoFrase NF = null; StringTokenizer ST = new StringTokenizer(Linea, " "); NF = new NodoFrase(ST); Almacena(NF); } void LeeFrases() { String Linea = " "; while(Linea.length() != 0) { Linea = LeeDato("Teclea una linea: "); if (Linea.length() != 0) SeparaFrase(Linea); } } } class NodoFrase { String Dato = ""; NodoFrase Sig = null; NodoFrase Primero = null; NodoFrase(String Dato) { this.Dato = Dato; } NodoFrase(StringTokenizer ST) { NodoFrase Ultimo = null, Nuevo = null; while ( ST.hasMoreTokens()) { Nuevo = CreaNodo(ST.nextToken()); if (Primero == null) Primero = Nuevo; else Ultimo.Sig = Nuevo; Ultimo = Nuevo; } } NodoFrase CreaNodo(String Palabra) { return new NodoFrase(Palabra); } } class NodoIndice { NodoFrase Inicio = null; NodoIndice Sig = null; NodoIndice(NodoFrase NF) { Inicio = NF.Primero; } }