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 :
Publicar un comentario