Hola a todos.
Tengo mis métodos para buscar, eliminar Inicio, eliminar Final,Agregar Inicio, Agregar al Final, pero no he podido desarrollar los métodos para:
Buscar y Eliminar, el elemento buscado
Insertar elemento en la posición que indique el usuario.
He leido varios post, pero no he encontrado la solución.
Esto necesito hacerlo en listas simples y Doblemente enlazadas en JAVA, les comparto mis métodos y clases:
Espero puedan darme una mano con este ejercicio, saludos.
DS
Tengo mis métodos para buscar, eliminar Inicio, eliminar Final,Agregar Inicio, Agregar al Final, pero no he podido desarrollar los métodos para:
Buscar y Eliminar, el elemento buscado
Insertar elemento en la posición que indique el usuario.
He leido varios post, pero no he encontrado la solución.
Esto necesito hacerlo en listas simples y Doblemente enlazadas en JAVA, les comparto mis métodos y clases:
Código [Seleccionar]
//Clase nodo
package asesorialistas;
/*@author Daniel Solis*/
public class Nodo{
public int Dato;
public Nodo Sig;//Puntero Enlcae recursivo
//Enlaza los diferentes nodos
//Constructor inicializar nodos
public Nodo(int d){
//Para crear un nodo final
this.Dato=d;
}
//Constructor para insertar al inicio
public Nodo(int d, Nodo n){
this.Dato=d;
this.Sig=n;
}
}
//Metodos Lista
package asesorialistas;
/*@author Daniel Solis*/
public class Lista {
//Creando punteros
protected Nodo Inicio, Fin; //Punteros para saber donde inica y donde termina
//Donde esta el Inicio y Fin
public Lista(){
Inicio=null;
Fin=null;
}
/*----------------------------------------------------------------------------*/
//Metodo para agregar al incio de la lista
public void AgregarInicio(int Elemento){
//Creando el nodo
Inicio = new Nodo(Elemento,Inicio);//Creando el Nodo
if(Fin==null){
Fin=Inicio;
}
}
/*----------------------------------------------------------------------------*/
//Metodo para agregar al final
public void AgrearFin(int Elemento){
if (!EstaVacia()) {
Fin.Sig=new Nodo(Elemento);
Fin=Fin.Sig;
}else{
Inicio=Fin=new Nodo(Elemento);
}
}
/*----------------------------------------------------------------------------*/
//Metodo para mostrar la lista
public void Mostrar(){
Nodo recorrer=Inicio;
while (recorrer!=null){
System.out.print("["+recorrer.Dato+"]");
recorrer=recorrer.Sig;
}
}
/*----------------------------------------------------------------------------*/
//Metodo esta la lista Vacia
public boolean EstaVacia() {
return Inicio==null;
}
/*----------------------------------------------------------------------------*/
public int BorrarInicio(){
//creando el nodo
int Elemento = Inicio.Dato;
if(Inicio==Fin){
Inicio = Fin = null;
}
else{
Inicio=Inicio.Sig;
}
return Elemento;
}
/*----------------------------------------------------------------------------*/
public int BorrarFinal(){
int Elemento = Fin.Dato;
if(Inicio==Fin){
Inicio = Fin = null;
}else{
Nodo temporal = Inicio;
while(temporal.Sig != Fin){
temporal = temporal.Sig;
}
Fin = temporal;
Fin.Sig = null;
}
return Elemento;
}
/*----------------------------------------------------------------------------*/
public boolean BuscarElemento (int elemento){
Nodo temporal=Inicio;
while (temporal!=null&& temporal.Dato!=elemento)
{
temporal=temporal.Sig;
}
return temporal!=null;
}
public boolean BuscarElementoEsp (int elemento){
Nodo temporal=Inicio;
while (temporal!=null&& temporal.Dato!=elemento)
{
temporal=temporal.Sig;
}
return temporal!=null;
}
}
//Clase Principal
package asesorialistas;
import java.awt.HeadlessException;
import javax.swing.JOptionPane;
/*@author Dany*/
public class Principal {
public static void main(String[] args) {
//crear instancias de las clases
Lista Listita = new Lista();
//menu do while
int opcion = 0;
int Elemento; //valor a la lista (para insertar)
do {
try {
opcion = Integer.parseInt(JOptionPane.showInputDialog(null, "*** MENU DE OPCIONES ***\n"
+ "1.- Agregar un Elemento al Inicio \n"
+ "2.- Agregar un Elemento al Final \n"
+ "3.- Mostrar los Elementos de las listas \n"
+ "4.- Checar si la lista esta vacia \n"
+ "5.- Borrar Elemento al inicio \n"
+ "6.- Borrar Elemento al final \n"
+ "7.- Buscar Elemento \n"
+ "8.- Buscar Elemento y eliminar elemento \n"
+ "9.- Salir \n"));
switch(opcion){
case 1:
try {
Elemento = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingresa el Elemento "
+ "al inicio"));
Listita.AgregarInicio(Elemento);
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null,"Error"+e.getMessage());
}
break;
case 2:
try {
Elemento = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingresa el Elemento "
+ "al final"));
Listita.AgrearFin(Elemento);
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null,"Error"+e.getMessage());
}
break;
case 3:
Listita.Mostrar();
System.out.println("");
break;
case 4:
Listita.EstaVacia();
break;
case 5:
try {
Elemento = Listita.BorrarInicio();
JOptionPane.showMessageDialog(null, "El Elemento eliminado es: "
+Elemento,"Eliminando nodo de inicio",
JOptionPane.INFORMATION_MESSAGE);
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null,"Error"+e.getMessage());
}
break;
case 6:
try {
Elemento = Listita.BorrarFinal();
JOptionPane.showMessageDialog(null, "El Elemento eliminado es: "
+Elemento,"Eliminando nodo de fin",
JOptionPane.INFORMATION_MESSAGE);
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null,"Error"+e.getMessage());
}
break;
case 7:
Elemento=Integer.parseInt(JOptionPane.showInputDialog(null,"Ingresa el "+" elemento a buscar...","Buscando nodos en la lista",
JOptionPane.INFORMATION_MESSAGE));
if (Listita.BuscarElemento(Elemento)==true) {
JOptionPane.showMessageDialog(null, "El elemento " + Elemento + " si esta en la lista",
"nodo encontrado",JOptionPane.INFORMATION_MESSAGE);
}else{JOptionPane.showMessageDialog(null, "El elemento " + Elemento + " no esta en la lista",
"nodo no encintrado",JOptionPane.INFORMATION_MESSAGE);
}
break;
case 8:
Elemento=Integer.parseInt(JOptionPane.showInputDialog(null,"Ingresa el "+" elemento a buscar...","Buscando nodos en la lista",
JOptionPane.INFORMATION_MESSAGE));
if (Listita.BuscarElemento(Elemento)==true) {
int resp = JOptionPane.showConfirmDialog(null, "El elemento " + Elemento + " si esta en la lista quieres eliminarlo");
if (JOptionPane.OK_OPTION == resp){
System.out.println("Eliminar registro");
}else{System.out.println("No Eliminar");
}
}else{JOptionPane.showMessageDialog(null, "El elemento " + Elemento + " no esta en la lista",
"nodo no encintrado",JOptionPane.INFORMATION_MESSAGE);
}
break;
}
} catch (HeadlessException | NumberFormatException e) {
JOptionPane.showMessageDialog(null,"Error"+ e.getMessage());
}
} while (opcion != 9);
}
}
Espero puedan darme una mano con este ejercicio, saludos.
DS