Sie sind auf Seite 1von 6

Instituto Tecnologico De Costa Rica Algoritmos y Estructura de Datos I IC_2000 Prof. Ivannia Cerdas.

Karla Madrigal Valverde 18/08/2011

//Definicin de la Clase de Excepciones class EmptyListException extends RuntimeException { public EmptyListException(String nombre) { super ( " La" + nombre+" esta vacia"); } }

// Clase NodosLista class NodosLista { // datos amigables para que la Clase Lista Tenga un acceso directo int datos; NodosLista siguiente; //Construtor Crea un nodo del tipo Object NodosLista (int valor) { datos =valor; siguiente = null; //siguiente con valor de nulo } // Constructor Crea un nodo del Tipo Object y al siguiente nodo de la lista NodosLista (int valor, NodosLista signodo) { datos = valor; siguiente = signodo; //siguiente se refiere al siguiente nodo } //Retorna el dato que se encuentra en este nodo int getObject() {return datos; } //Retorna el siguiente nodo NodosLista getnext() {return siguiente; } }//Final de la Clase NodosLista

//Definicin de la Clase Lista class ListaSimple { public NodosLista PrimerNodo; String Nombre;

//Constructor construye una lista vacia con un nombre s //Retorna True si Lista Vaca public boolean VaciaLista () {return PrimerNodo == null;} // Imprime el contenido de la lista public void Imprimir() { if (VaciaLista()) { System.out.println( "vacia" +Nombre); } //fin del primer if else { System.out.print( "La " + Nombre +" es: "); NodosLista Actual = PrimerNodo; while (Actual != null) { System.out.print (Actual.datos); Actual=Actual.siguiente; } System.out.println(); System.out.println(); } } public ListaSimple (String s) { Nombre = s; PrimerNodo = null; } //Constructor construye una lista vacia con un nombre de List public ListaSimple(){ this ("Lista");} //Inserta un Elemento al Frente de la Lista //Si esta vaca PrimerNodo y UltimoNodo se refieren al nuevo nodo. Si no PrimerNod o se refiere al nuevo nodo. public void InsertaInicio (int ElemInser) { if (VaciaLista()) PrimerNodo =new NodosLista (ElemInser); else PrimerNodo = new NodosLista (ElemInser, PrimerNodo); } //Inserta al Final de la Lista //Si la lista se encuentra vaca, el PrimerNodo y el UltimoNodo se refieren al nue vo nodo. Si no, la variable de siguiente de UltimoNodo se refiere al nuevo nodo. public int InsertaFinal(int ElemInser) { if ( VaciaLista()) { PrimerNodo = new NodosLista (ElemInser);} else { NodosLista Aux=PrimerNodo;

while (Aux.siguiente!=null) { Aux=Aux.siguiente; } if (Aux.siguiente==null) { Aux.siguiente=new NodosLista (ElemInser);} } }

//Inserta un Elemento en una posicin dada //Si esta vaca PrimerNodo y UltimoNodo se refieren al nuevo nodo. //Si no PrimerNodo se refiere al nuevo nodo. public void InsertaMedio (int ElemInser,int Posicion) { if (VaciaLista()) PrimerNodo = new NodosLista (ElemInser); else { if (Posicion<=1) { NodosLista Nuevo = new NodosLista(ElemInser); Nuevo.siguiente = PrimerNodo; PrimerNodo = Nuevo; } else { NodosLista Aux = PrimerNodo; int i = 2; while ( (i != Posicion) & (Aux.siguiente != null)) { i++; Aux = Aux.siguiente; } NodosLista Nuevo = new NodosLista(ElemInser); Nuevo.siguiente = Aux.siguiente; Aux.siguiente =Nuevo; } } } //Eliminar al Inicio //Debe tomar en cuenta si la lista se encuentra vaca y producir una excepcin, en c aso contrario si PrimerNodo y UltimoNodo referencian al mismo nodo, ambos deben ser null y sino primernodo ser igual a PrimerNodo.siguiente public int EliminaInicio() { int ElementoDel = 0; if ( VaciaLista()) System.out.println ("No hay elementos");//throw new Except ionListException (Nombre); ElementoDel = PrimerNodo.datos; // recuperar la informacin // Restablecer las referencias de PrimerNodo y UltimoNodo if (PrimerNodo.siguiente!=null)

PrimerNodo = null; else PrimerNodo = PrimerNodo.siguiente; return ElementoDel;} //Eliminar al Final //Debe tomar en cuenta si la lista se encuentra vaca y producir una excepcin, en c aso contrario si PrimerNodo y UltimoNodo referencian al mismo nodo, ambos deben ser null y sino ultimonodo en el campo siguiente ser nulo public int EliminaFinal () throws EmptyListException { int ElementoDel = 0; if ( VaciaLista()) System.out.println ("No hay elementos");//throw new ExceptionListException ( Nombre); ElementoDel = PrimerNodo.datos; // recuperar la informacin // Restablecer las referencias de PrimerNodo y UltimoNodo if (PrimerNodo.siguiente!=null) PrimerNodo = null; else { NodosLista Actual =PrimerNodo; while (Actual.siguiente != null) Actual = Actual.siguiente; ElementoDel =Actual.datos; Actual.siguiente = null; } return ElementoDel;} //Elimina un Elemento en una posicin dada //Si esta vaca PrimerNodo y UltimoNodo se refieren al nuevo nodo. //Si no PrimerNodo se refiere al nuevo nodo. public int EliminaMedio (int Posicion) { int ElementoDel = 0; if ( VaciaLista()) System.out.println( "Nada"); else { ElementoDel = 0;// recuperar la informacin NodosLista Aux =null; NodosLista Actual = PrimerNodo; int i =1; while (( i != Posicion) & (Actual.siguiente != null)) { i++; Aux =Actual; Actual =Actual.siguiente; } if( i ==Posicion) { if (Aux == null) { Actual = PrimerNodo;

PrimerNodo = PrimerNodo.siguiente; } else { ElementoDel=Aux.datos; Aux.siguiente = Actual.siguiente; } } } return ElementoDel;} public void Invertir()// invierte las referencias { NodosLista sig = PrimerNodo; NodosLista anterior = null; while(!(VaciaLista())) { sig = PrimerNodo.siguiente; PrimerNodo.siguiente = anterior; anterior = PrimerNodo; PrimerNodo = sig; } } public void ElementoXPosicion(int Posicion, int Elemento) { NodosLista Aux = PrimerNodo; int i=1; while ((Posicion!=i)&(Aux.siguiente!=null)) { i++; Aux=Aux.siguiente; } if ((Posicion == i)&(Aux.datos==Elemento)) { System.out.println("El elemento "+Elemento+ " si se encuentra en la posicion " +Posicion); } else { System.out.println("El elemento"+Elemento+"no se encuentra en la posicion"+Posi cion); } } public void PegarL1yL2(ListaSimple p) { NodosLista Aux = PrimerNodo; NodosLista Pegar = null; while (Aux!=null) { Pegar=Aux; Aux=Aux.siguiente; } Pegar.siguiente=p.PrimerNodo; } };

class Prueba { public static void main (String[] args) { int valor; valor = 14; ListaSimple NuevaLista = new ListaSimple(); NuevaLista.InsertaInicio(7); NuevaLista.InsertaInicio(6); NuevaLista.InsertaInicio(9); NuevaLista.InsertaInicio(6); NuevaLista.Imprimir();

ListaSimple Lista2 = new ListaSimple(); Lista2.InsertaInicio(7); Lista2.InsertaInicio(8); Lista2.InsertaInicio(9); Lista2.InsertaInicio(1); Lista2.InsertaMedio(2,2); //Lista.EstaElemento(3); //System.out.println(" //NuevaLista.BuscarElemento ("pedro"); /*System.out.println(" NuevaLista.BuscarElemento ("chano"); System.out.println(" Lista2.ElementoXPosicion(3); System.out.println( Lista2.Imprimir(); NuevaLista.PegarL1yL2(Lista2); System.out.println( NuevaLista.Imprimir(); //System.out.println(" } };

"); "); ");*/ );

); ");

Das könnte Ihnen auch gefallen