Linkedlist (поиск и вставка)
Hello guys, I have my methods to search, delete Start, delete End, Add Start, Add to End, but I have not been able to develop the methods to: Search and Delete: the item searched Insert element: Insert element in the position indicated by the user. I hope you can help me with this methods, please. Thanks in advance. DS
Что я уже пробовал:
I share my methods and class <pre lang="java"> //Node class 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; } } //List Methods 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; } } //MAIN 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); } }
Дело восьмое - это поиск и удаление. Я еще не закончил ее.