Adsence

jueves, 18 de agosto de 2011

Listas-sencillas-en-Java

Leave a Comment
[caption id="attachment_987" align="aligncenter" width="259"]Listas sencillas en Java Listas sencillas en Java[/caption]

Buenas Noches este codigo lo subi debido a que me pidieron ayuda en un trabajo de Estructuras. Es el siguiente:

  • Como se crea una lista simple y crearla.

  • Como se elimina un objeto de una lista simple(Metodo).

  • Como se agrega objeto a una lista simple(Metodo).


Mas tarde subo como ordenar esta misma lista, cualquier cosa si no funciona me avisan, pues yo ya lo probe y todo bien



[java]

import java.util.Scanner;

class Nodo{

private Object name;
private Nodo Next=null;

public Nodo()
{

}
public Nodo(Object nombre)
{
this.name=nombre;
}

public Nodo(Object nombre,Nodo sig)
{
this.name=nombre;
this.Next=sig;
}

public Object getname()
{
return this.name;
}

public Nodo getNext()
{
return this.Next;
}

public void setname(Object nombre)
{
this.name=nombre;
}

public void setNext(Nodo sig)
{
this.Next=sig;
}

}

public class listas {

public static Nodo cabeza=null,cola;
public listas(){
}
public static void agregarNodo(Object nom)
{
Nodo n=new Nodo(nom);
//Verificamos si la lista esta vacia, es decir la cabeza es null
if(cabeza==null)
{
//Como es el primer nodo, tanto la cabeza como la cola son la misma
cabeza=n;
cola=n;
}
//Si no es la cabeza agregamos el nodo a la cola, es decir a lo ultimo
else
{
//Modifico el nodo de la cola para indicarle que el siguiente nodo es este
cola.setNext(n);
//Digo que el ultimo nodo de la lista (cola) es este
cola=n;

}
}
public static void eliminarNodo(Object nom)
{
Nodo aux=cabeza;
//Primero verifico si lo que se quiere eliminar es el nodo cabeza
if(aux.getname().equals(nom)==true)
{
cabeza=aux.getNext();
}else{

//Recorro todos los nodos en busca del nodo que se encuentra antes
//del nodo que se desea eliminar
while(aux.getNext().getNext()!=null)
{
//Comparo el contenido del nodo con el parametro recibido
if(aux.getNext().getname().equals(nom))
{
//Tomo el siguiente del nodo a eliminar
Nodo sig=aux.getNext().getNext();
//Modifico el siguiente del nodo antes del que se desea eliminar
//para que ya no lo enlase
aux.setNext(sig);
}
aux=aux.getNext();
}
//Si el nodo a eliminar no se encuentra en el medio de la lista quiere decir
//que es el nodo cola
//Comparo el contenido del nodo con el parametro recibido
if(aux.getNext().getname().equals(nom))
{
aux.setNext(null);
cola=aux;
}
}
}
public static void mostrarLista()
{
Nodo aux=cabeza;
//Verifico que la lista no este vacia
if(aux!=null)
{
System.out.print("Elementos de la lista:\n"+" | ");
while(aux.getNext()!=null)
{
System.out.print(aux.getname()+" | ");
aux=aux.getNext();
}
System.out.println(aux.getname()+" | ");
}else{
System.out.println("*\t *\t Lo sentimos la lista esta vacia \t* \t*");
}

}

/**
* @param args the command line arguments
*/
public static void main(String[] args)

{
int opc=0;
Object aux;
Scanner leer=new Scanner(System.in);
while(opc!=4)
{
System.out.println("Menu:");
System.out.println("1. Agregar Nodo");
System.out.println("2. Eliminar Nodo");
System.out.println("3. Imprimir");
System.out.println("4. Salir");
System.out.print("Escoje:");
opc=leer.nextInt();
switch(opc)
{
case 1:
System.out.print("Dijite el elemento:");
aux=leer.next();
agregarNodo(aux);
break;
case 2:
System.out.print("Nodo a eliminar:");
aux=leer.next();
eliminarNodo(aux);
break;
case 3:
mostrarLista();
break;
}
}
}
}

[/java]

0 comentarios :