Listas.java_



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;
	}
}