Manejo de listas Java
style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5126364088863607"
data-ad-slot="9520827110">
/* Esta clase Principal instancia la clase Lista y entonces invoca sus metodos //
* mostrando el resultado de cada acci�n a fin de comprobar el funcionamiento //
*/
public class Principal {
public static void main(String args[]) {
Lista miLista = new Lista(); // crea una instancia de la clase Lista
Nodo nuevo; // enlace a objeto de tipo Nodo que se usar�
// para apuntar a un nuevo nodo al crearlo
int info=0, inf; // variables para contener la informaci�n que
// se colocar� en un nodo
System.out.println("agrega 5 nodos y muestra la lista cada vez\n"); // PRIMERA ACCION - agregar nodos a la Lista
for(int i=0;i<5;i++) { //
info = 10 + (int)(Math.random()*90); // genera informaci�n aleatoria
System.out.print("agrega " + info + ", entonces "); //
nuevo = new Nodo(info); //
miLista.agregar(nuevo); //
miLista.mostrar(); //
} //
System.out.println(); //
inf = info; // guarda ultima info para usarla mas abajo
System.out.print("\nDetermina si existe un nodo de contenido " + inf); // SEGUNDA ACCION - buscar un nodo con esa inf
if(miLista.existeNodoCon(info)) System.out.println(" Si existe"); //
else System.out.println(" No existe"); //
//
info = 10 + (int)(Math.random()*90); // SEGUNDA ACCION- buscar uno con info aleatoria
System.out.print("\nDetermina si existe un nodo de contenido " + info); //
if(miLista.existeNodoCon(info)) System.out.println(" Si existe"); //
else System.out.println(" No existe"); //
//
System.out.print("\nElimina primer nodo, entonces "); // TERCERA ACCION - eliminar primer nodo
miLista.eliminaPrimero(); //
miLista.mostrar(); //
//
System.out.print("\nElimina ultimo nodo, entonces "); // CUARTA ACCION - eliminar ultimo nodo
miLista.eliminaUltimo(); //
miLista.mostrar(); //
//
System.out.print("\nMuestra al reves, entonces "); // QUINTA ACCION - mostrar lista al reves
miLista.muestraAlreves(); //
//
} //
} /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public class Nodo {
protected int info;
protected Nodo nexo;
Nodo() {}
Nodo(int info) {
this.info = info;
this.nexo = null;
}
}
protected int info;
protected Nodo nexo;
Nodo() {}
Nodo(int info) {
this.info = info;
this.nexo = null;
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Robert Calbul Yevilao
**/
public class Lista extends Nodo {
Nodo Inicio, Ultimo;
Lista() {
Inicio = null;
Ultimo = null;
}
public void agregar(Nodo nuevo) {
if(Ultimo==null) Inicio = nuevo;
else Ultimo.nexo = nuevo;
Ultimo = nuevo;
}
public void mostrar() {
System.out.print("Lista");
Nodo p=Inicio;
while(p!=null) {
System.out.print(" - " + p.info);
p = p.nexo;
}
System.out.println();
}
//**** METODOS QUE FALTAN POR CODIFICAR ****//
public boolean existeNodoCon(int info) {
boolean verificar = false;
Nodo p = Inicio;
while(p!=null){
if(p.info == info) verificar = true;
p = p.nexo;
}
return verificar; //lo puse asi solo para compilar
}
public void eliminaPrimero() {
Nodo p = Inicio;
if(p!=null){
p = p.nexo;
Inicio = p;
}
}
public void eliminaUltimo() {
Nodo p = Inicio;
while(p!=null){
if(p.nexo == Ultimo){
p.nexo = null;
Ultimo = p;
}
p = p.nexo;
}
}
//este metodo utuliza a otro, el cual debe ser recursivo
public void muestraAlreves() {
Alveres(Inicio);
}
//este es el metodor recursivo que debes escribir
private void Alveres(Nodo p) {
if (p!=null) {
Alveres(p.nexo);
System.out.print(p.info+"-");
}
}
}
Robert Calbul Yevilao
**/
public class Lista extends Nodo {
Nodo Inicio, Ultimo;
Lista() {
Inicio = null;
Ultimo = null;
}
public void agregar(Nodo nuevo) {
if(Ultimo==null) Inicio = nuevo;
else Ultimo.nexo = nuevo;
Ultimo = nuevo;
}
public void mostrar() {
System.out.print("Lista");
Nodo p=Inicio;
while(p!=null) {
System.out.print(" - " + p.info);
p = p.nexo;
}
System.out.println();
}
//**** METODOS QUE FALTAN POR CODIFICAR ****//
public boolean existeNodoCon(int info) {
boolean verificar = false;
Nodo p = Inicio;
while(p!=null){
if(p.info == info) verificar = true;
p = p.nexo;
}
return verificar; //lo puse asi solo para compilar
}
public void eliminaPrimero() {
Nodo p = Inicio;
if(p!=null){
p = p.nexo;
Inicio = p;
}
}
public void eliminaUltimo() {
Nodo p = Inicio;
while(p!=null){
if(p.nexo == Ultimo){
p.nexo = null;
Ultimo = p;
}
p = p.nexo;
}
}
//este metodo utuliza a otro, el cual debe ser recursivo
public void muestraAlreves() {
Alveres(Inicio);
}
//este es el metodor recursivo que debes escribir
private void Alveres(Nodo p) {
if (p!=null) {
Alveres(p.nexo);
System.out.print(p.info+"-");
}
}
}
Comentarios
Publicar un comentario
Deja tus comentario