22 - Listas Doblemente Enlazadas, Eliminación del Inicio y del Final (EDDJava)

Поделиться
HTML-код
  • Опубликовано: 13 сен 2024
  • / masterhehegar
    / masterhehegar
    Si no puedes comentar aquí, hazlo en twitter o en facebook...
    Bienvenid@s al Vigésimo Segundo VideoTutorial de la serie "Estructuras De Datos Con Java", hoy abordamos el tema "Listas Doblemente Enlazadas, Eliminación del Inicio y del Final", ojalá y les sea de muchísima utilidad. Comenten, suscríbanse y ya saben si les gusta denle clic a la manita...Quedamos más que al Millonazo...

Комментарии • 25

  • @user-ro3mm4fb6n
    @user-ro3mm4fb6n Год назад

    Es la primera vez que veo tus videos sr me parece excelente gracias

  • @fernandoecheverria5489
    @fernandoecheverria5489 6 лет назад +6

    esta muy bien .. pero si pudieras eliminar un nodo en especifico con su respectivo case fuera genial

  • @juliangarciamurillo3918
    @juliangarciamurillo3918 Год назад

    Debido a que son listas doblemente enlazadas, la eliminación de un nodo en específico ya no necesitará de dos nodos auxiliares, solamente uno que será para recorrer. ¡Muchas gracias maestro!

  • @darthjulius2
    @darthjulius2 7 лет назад +1

    Este curso está genial, le entiendo mil veces mejor que al profe de la universidad

  • @ivanavalos3911
    @ivanavalos3911 7 лет назад +8

    No sería más fácil crear un método en la clase principal para manejar de forma más fácil un JOptionPane sin tanto argumento:
    Algo como esto:
    // Un simple JOptionPane
    public void msg(String msg, String title, int type){
    JOptionPane.showMessageDialog(null, msg, title, type);
    }
    // Obtener un valor numérico de un JOptionPane
    public int parseFromDialog(String msg, String title, int type) {
    return Integer.parseInt(msg(msg, title, type));
    }

  • @danieltrejocruz7459
    @danieltrejocruz7459 4 года назад +2

    Una pregunta, como sería el método para eliminar de enmedio?

  • @MegaSystemHack
    @MegaSystemHack 10 лет назад

    Muy Bueno era justo lo que estaba buscando....

  • @ruben_ledesma
    @ruben_ledesma 7 лет назад +1

    Está muy bueno el curso. Si pudiera explicar cómo buscar un elemento y eliminarlo.

  • @alancruz4930
    @alancruz4930 3 года назад +6

    //Metodo para eliminar cualquier nodo(inicio, intermedio o el ultimo)
    public int eliminarCualquierElemento(int elemento) {
    NodoDoble temp = inicio;
    if (inicio == fin && temp.dato == elemento) {
    inicio = fin = null;
    }else{
    if (!listaEstaVacia()) {
    while (temp != null && temp.dato != elemento) {
    temp = temp.siguiente;
    }
    }
    if (temp != null) {
    if (temp != inicio) {
    if (temp != fin) {
    temp.siguiente.anterior = temp.anterior;
    temp.anterior.siguiente = temp.siguiente;
    } else {//eliminar del final
    fin = fin.anterior;
    fin.siguiente = null;
    }
    } else {//eliminar del inicial
    inicio = inicio.siguiente;
    inicio.anterior = null;
    }
    }
    }
    return elemento;
    }

  • @devsilva7155
    @devsilva7155 3 года назад +1

    y si quiero añadir junto a los enteros otro tipo de valor y se guarden ambos? trate de usar la misma estructura pero me da error

    • @dezer6201
      @dezer6201 5 месяцев назад

      Puedes usar Object como tipo de dato, también el nombre de una clase donde tengas un tus atributos y un constructor

  • @maikiavel
    @maikiavel 8 лет назад

    gracias

  • @tererguez.3990
    @tererguez.3990 5 лет назад +1

  • @cesarvelasco3503
    @cesarvelasco3503 8 лет назад

    Podrias subir el archivo para verlo completo? muy bien explicado pero no se ve lo del principio

  • @Alnsstark
    @Alnsstark 6 лет назад

    Esta bien el codigo, pero ocupo un metodo de imprimir para hacerlo desde consola

  • @cristiannunez2343
    @cristiannunez2343 7 лет назад +5

    El metodo que implemente para borrar un elemento en especifico
    public void eliminarNodoUnico(int el){
    if(estaVacia()){
    System.out.println("Lista vacia");
    }
    else if(fin == inicio){
    if(el == inicio.dato){
    fin = inicio = null;
    }
    else{
    System.out.println("Error");
    }
    }
    else if(el == inicio.dato){

    inicio = inicio.siguiente;
    inicio.anterior = null;
    }
    else{
    NodoDoble temporal, anterior, siguiente;
    temporal = inicio;
    siguiente = inicio;
    anterior = inicio;
    while(siguiente != null && siguiente.dato != el){
    temporal = temporal.siguiente;
    siguiente = siguiente.siguiente;
    anterior = anterior.siguiente;
    }
    if(siguiente != null && siguiente != fin){
    siguiente.siguiente.anterior = temporal.anterior;
    anterior.anterior.siguiente = temporal.siguiente;
    }
    else{
    if(siguiente == fin){
    fin = fin.anterior;
    fin.siguiente = null;
    }
    }

    }
    }

    • @battle.axe199
      @battle.axe199 5 лет назад

      Y en la clase principal, qué código utilizaste para que se muestre?? En los case...

    • @battle.axe199
      @battle.axe199 5 лет назад

      Me podrías ayudar con eso?

    • @Ocioreal
      @Ocioreal 4 года назад +1

      @@battle.axe199 Eso es lo mas facil, solo pon el metodo con el case y no se te olvide actualizar el while del do while, lo mas dificil es crear el metodo.

    • @ivanalexismancipecallejas2218
      @ivanalexismancipecallejas2218 4 года назад

      solo te faltaría la condición a cuando el elemento a eliminar es el ultimo, solo seria agregar un else if y ya:
      else if(ultimo == el){
      ultimo = ultimo.previous;
      ultimo.siguiente = null;
      }

  • @juansanchezgomez
    @juansanchezgomez Год назад

    Método para borrar un elemento cualquiera de la lista y borrarlo ->
    public void borrarElemento(int elemento){
    if(!estaVacia()){
    if(estaEnLista(elemento)){
    if(inicio==fin && inicio.dato == elemento){ //solo hay un elemento y coincide con el buscado
    inicio=null;
    fin = null;
    }else{
    if(inicio.dato==elemento){ //si el elemento a borrar es el primero de la lista
    inicio=inicio.siguiente;
    inicio.anterior=null;
    }
    else{
    if(fin.dato==elemento){ //si el elemento a borrar es el ultimo de la fila
    fin=fin.anterior;
    fin.siguiente=null;
    }
    else{
    //partimos en la busqueda desde el principio
    //pero tambien lo podiamos hacer desde el final .. que para eso es enlazada
    NodoDoble borrar = inicio;
    //apuntamos con aux al nodo que queremos borrar
    while(borrar.dato!=elemento){
    borrar=borrar.siguiente;
    }
    //ya estamos apuntando al puntero que queremos borrar
    //ahora debemos acoplar los punteros que se quedan ligando sus punteros
    //para eso partimos del aux como referencia
    borrar.anterior.siguiente = borrar.siguiente;
    borrar.siguiente.anterior=borrar.anterior;
    }
    }
    }
    }else{
    System.out.println("El elemento que quieres borrar no esta en la lista");
    }
    }else{
    System.out.println("
    \tLa lista esta vacia.");
    }
    }

  • @yonicization
    @yonicization 8 лет назад

    Y cual es el algoritmo para buscar un elemento?

    • @MrYOYOL19
      @MrYOYOL19 7 лет назад

      public boolean datoDentroLista(int dato){
      NodoDoble auxiliar = inicio;
      boolean validar = false;
      while(auxiliar!=null && auxiliar.dato != dato){
      auxiliar = auxiliar.siguiente;
      validar = true;
      }
      return validar;
      }