Estructuras de datos - 4. Listas enlazadas en Java (COMPLETO)

Поділитися
Вставка
  • Опубліковано 5 січ 2025

КОМЕНТАРІ • 119

  • @Nahueel98
    @Nahueel98 7 років тому +5

    Buenas explicaciones del tema pero considero que se llevan a cabo con demasiada velocidad, prácticamente sin pausas entre método y método. Además, en ningún momento se ejecuta el código con ejemplos para reforzar la explicación y facilitar el aprendizaje. Buen trabajo, y gracias por subir este tipo de contenido!

  • @mikes0703
    @mikes0703 10 місяців тому +5

    Gracias por las Clases muy entendibles Aprendo mas contigo que en LA universidad. Infinitas gracias

  • @robertorodriguez-net
    @robertorodriguez-net 8 років тому +9

    Genial.
    Da gusto ver un tutorial en que el autor no dude al mostrar el trabajo. Eres rápido y claro, así da gusto.
    Muchas gracias por los vídeos.

  • @richardprice360
    @richardprice360 11 місяців тому

    Que crack, estoy consumiendo mucho de tu contenido y es de lo mejor. Me estás ayudando a fortalecer mis bases, pero tremendo.

  • @videosyoutube718
    @videosyoutube718 9 років тому +7

    explicas rápido y conciso, me encantan estos vídeos, espero con ansia estructuras más complejas.

  • @maxvidartevega646
    @maxvidartevega646 3 роки тому

    Amigo GRACIAS. Estuve horas... abstraer estas cosas, al principio te rompes la cabeza pero luego quedan.
    Sigue así una joya tus videos, de paso me ayudaron a comprender el libro de Joyanes.

  • @danielfernandezfernandez7017
    @danielfernandezfernandez7017 3 роки тому

    La verdad me ayudo, casi todos los tutoriales de programacion son cosas excesivamente basicas o inutiles esto me salvo la practica de Listas.

  • @brendamartinez8781
    @brendamartinez8781 3 роки тому +1

    Muy buena la explicación, super rápido y conciso. Serviría mucho mucho de guía también que, hubiera un repositorio con los ejemplos. Gracias!

  • @sofiavaras5395
    @sofiavaras5395 3 роки тому +1

    Muchas gracias me sirvió mucho tu video, fue muy difícil encontrar un contenido tan completo

  • @jorgeatempa
    @jorgeatempa 8 років тому +2

    Te felicito explicas de una manera excepcional. Hoy descubrí este canal y estoy muy contento de haberme suscrito por que me doy cuenta que tienes contenido de calidad. Nuevamente felicidades por estos tutoriales !

  • @gustavoteleguario
    @gustavoteleguario 8 років тому

    oye quiero felicitarte me gusta mucho tu explicacion :) y me ha ayudado demasiado a entender mejor las listas enlazadas ..

  • @jmontero_27
    @jmontero_27 2 роки тому

    Una explicación perfecta, muchas gracias.

  • @shadowthun237
    @shadowthun237 2 роки тому

    qué buen video tio. Muchas gracias

  • @yonatangarciagalan7201
    @yonatangarciagalan7201 3 роки тому

    Fascinante, entendible y conciso 💯

  • @alexandermunozguale2242
    @alexandermunozguale2242 2 роки тому

    Que locura
    Increible video.

  • @fabiancardenasponce8699
    @fabiancardenasponce8699 7 років тому

    MUCHAS GRACIAS MI ESTIMADOTUS CONTRIBUCIONES A LA PROGRAMACIÓN ME HAN TRIADO MUCHOS BENEFICIOS EN LA CARRERA

  •  5 років тому +1

    Muchas gracias, me ayudaste bastante

  • @jumpering1
    @jumpering1 4 роки тому

    Muy buenos los videos, muchas gracias y mucha suerte!

  • @allbluez8054
    @allbluez8054 5 років тому +1

    Tremendo Amigo! Sos muy grosso Makigas!! Te felicito y te agradezco. No osbtante...
    Mientras venía siguiendo tu video y escribiendo el código a la par tuya, yo iba restando siempre 1 a n, aún cuando tú no lo hacías; esto debido a que yo interpretaba que si, por ejemplo, n=5, y contador empieza desde 0 (o sea, primer elemento, contador = 0), entonces para detener el puntero en el 4to elemento, debo hacerlo cuando contador = 3 (n-1). Del mismo modo, si quiero pararme en el nodo anterior al nodo objetivo (por ejemplo, para borrar un nodo intermedio), debo pararme en n-2, no en n-1.
    En el minuto 15:18 del video, parece confirmarse mi teoría, quedando comprobado que el tratamiento que le estabas dando al valor "n" es el equivocado.
    Si estoy equivocado, por favor, házmelo saber.
    Abrazo y 1.000.000 de gracias por tus clases, que son simplemente MA-GIS-TRA-LES!

    • @rubenomarramirezmontero7667
      @rubenomarramirezmontero7667 4 роки тому

      Exacto amigo! yo igual me di cuenta puesto que cuando le vas a preguntar al usuario que libro quieres eliminar el no te va decir que quiere eliminar el libro "0 "(En el método de Elimnarlibro se ve claramente que trata como primer libro a la variable n=0) Así que yo igual tengo la misma duda y si estoy mal por favor corrijan me!!! un saludo :)

  • @emanuelh.a8492
    @emanuelh.a8492 5 років тому

    Nice.. Quedó trukulentah tu explicación..

  • @allanromero5502
    @allanromero5502 9 років тому +49

    Deberías mostrar el Main para que sea mas completo el vídeo.
    Los demás esta excelente.

    • @josegarcia-lj4eq
      @josegarcia-lj4eq 4 роки тому +6

      Pienso igual que Allan, a ver si por favor puedes enseñarnos el Main Daniel la verdad es que facilitaría las cosas. Por otra parte felicitarte por esta serie tan buena de Estructuras de Datos. Un saludo

    • @Epycmonster
      @Epycmonster 4 роки тому +2

      Lo veo necesario porque si ejecuto este código en mi pc, falta enlazarlo al main

  • @Lee12300
    @Lee12300 3 роки тому

    me resulto interesante, gracias

  • @junner13
    @junner13 2 роки тому +3

    Excelente video explicativo me sirvio mucho, pero sugiero para el que este aprendiendo que trate de entenderlo mediante graficos, osea en un cuaderno ir representando situaciones de agregacion o eliminacion de nodos, asi se hace muchisimo mas facil entender como se conectan los nodos de la lista.

    • @isaakix5228
      @isaakix5228 2 роки тому

      exacto espero lo considere hehe

  • @al3xcamp0s
    @al3xcamp0s Рік тому

    El mejor..

  • @adriangaravito8028
    @adriangaravito8028 8 років тому +1

    Interesante ejercicio, pero debiste correrlo porque en teoría no se ve ningun error pero es mejor asegurarse de que corra, voy a realizarlo y te comento gracias por el aporte.

  • @henrymonteroparedes2765
    @henrymonteroparedes2765 5 років тому

    MUY BUENO LA CLASE

  • @RicardoHernandez-qf1cf
    @RicardoHernandez-qf1cf 9 років тому

    ¡Increíble! :D

  • @LyricsSubtitulos
    @LyricsSubtitulos 4 роки тому +1

    11:42 ahi no es mas sencillo poner en la condicion "si longitud es igual a 1" en lugar de "si cabeza.siguiente es igual a null"??

  • @dariorestrepo3494
    @dariorestrepo3494 7 років тому +33

    Sera mi falta de concentración porque todos entienden, pero entre el primero y el ultimo, mi cabeza vale Null, ahora soy el nuevo ultimo.

  •  Рік тому

    Ultra Like!!!!!!!!!!!!!!!!!!!!!!!!

  • @Carloshdv
    @Carloshdv Рік тому +1

    Entendí el vídeo muy bien, lo que no le entiendi a mi profe de la uni ,muchas gracias... Pero lo que no entiendo aún es, Para que se usa esto? Es decir, cómo se aplica esto en el desarrollo de un software, programa o app?

    • @makigas
      @makigas  Рік тому +1

      La parte de programación hoy día vale para poco más que para sacar adelante una prueba técnica y que te contraten. Salvo lugares especializados, normalmente hoy día se tira del propio lenguaje o de su biblioteca estándar, que ya traen las estructuras hechas, aunque hay que saber juzgar y ver si toca usar una lista, una cola, una pila…

    • @Carloshdv
      @Carloshdv Рік тому

      @@makigas ahh entiendo 👌🏻👍🏻, muchas gracias 😊

  • @brahianstivengarciatorres9632
    @brahianstivengarciatorres9632 5 років тому +4

    No entiendo un carajo y eso me encanta :v, ahora tengo con que echar cabeza mientras viaje hasta que lo entienda xD

  • @sgarcia1283
    @sgarcia1283 4 роки тому

    el codigo igual se podria simplificar haciendo que siguiente sea privado y creando un setter / getter en vez de acceder y modificar directamente su valor.
    de esta forma se puede incrementar el valor de la variable "longitud" en el setter accediendo a la variable longitud del pariente (solo una idea para experimentar una factorizacion del codigo propuesto). Los mismo al getionar el reemplazo o borrado de algun nodo (al modificar el siguiente de un nodo)... a verificar :-)
    tambien se puede separar el bucle que recorre la lista en una funcion separada para no tener que repetir el mismo codigo multiples veces

    • @makigas
      @makigas  4 роки тому

      Indudablemente, pero de cara a explicar el entresijo de la estructura de datos lo haría más complejo de explicar, así que me tomo esa licencia.

  • @josmarramirez1174
    @josmarramirez1174 3 роки тому

    Crear una lista de números aleatorios. Insertar los nuevos nodos por la cabeza de la lista. Una vez creada la lista, se han de recorrer los nodos para mostrar los números pares.

    • @makigas
      @makigas  3 роки тому

      Pues te piden que metas elementos y luego recorras

  • @willianpontes5517
    @willianpontes5517 7 років тому

    Que aulas maravilhosas queria aulas assim em português.

  • @alienpuppy
    @alienpuppy 7 років тому

    Tengo una pregunta, es necesario crea un objeto puntero cada vez que se va a usar en un metodo?

  • @JuanHernandez-hw6bx
    @JuanHernandez-hw6bx 3 роки тому

    ¿Porqué los nodos que insertas en la lista siguen existiendo a pesar de que las declaras adentro de distintos métodos?

  • @Jessica_Azcona
    @Jessica_Azcona 6 років тому +2

    ¿Qué va en el Main?

  • @jmfernu9045
    @jmfernu9045 2 роки тому

    El borrado por posición no funciona y el código exactamente el mismo a que se debe esto?

  • @coronaramoskevinyukiel4788
    @coronaramoskevinyukiel4788 Рік тому

    y el metodo para ejecutarlo
    ?

  • @fernandofernandez8140
    @fernandofernandez8140 7 років тому

    Hola, una pregunta. Cuando creas un nuevo objeto de tipo nodo. Éste reconoce que es diferente a los demás por la información contenida a pesar que todos los Objetos(nodo) tiene el mismo nombre? Imagino que así es, pero por qué?. Saludos. y Excelente video.

    • @makigas
      @makigas  7 років тому

      En el caso de Java reconoce que es distinto a los demás por el Object.hashCode, si es a eso a lo que te refieres.

    • @fernandofernandez8140
      @fernandofernandez8140 7 років тому

      Tengo entendido que cuando creas un nodo estas creando un nuevo objeto en una dirección de memoria, también que cuando se crea un nodo u objeto dentro de un método no hay problemas, pero cuando se crea un nodo u objeto fuera de los métodos ocurre un error. ¿Estoy en lo correcto? y entonces, ¿ésto se debe por el Object.hashCode? Saludos y gracias por responder.

  • @Maverick-gc3mp
    @Maverick-gc3mp 8 років тому +2

    a mi me dejo duda por el cual no corres el programa para verificar como debe de funcionar... y otra dudas mas

    •  5 років тому

      Porque no lo probas vos mismo?

    • @cristianalonsohernandezzav594
      @cristianalonsohernandezzav594 4 роки тому

      Yo lo probé y el programa no hace nada porque no hay Main

  • @francgs-dev
    @francgs-dev 7 років тому +1

    Hola buenas, hace falta un nodo donde guardar el inicio, dado que si se prueba como esta planteado, generara un Null pointer exception. Saludos!

    • @alienpuppy
      @alienpuppy 7 років тому +1

      Hey que mas, como entendi la pregunta creo que no hay necesidad de crear uno, ya que estamos creando una lista que esta enlazada, que solamente va en una direccion y que solo tiene un enlace , o en que parte hace falta el nodo donde se deba guardar el inicio?

    • @francgs-dev
      @francgs-dev 7 років тому

      Si tienes razón, un error de interpretación, gracias por responder.

  • @eduardocruz9505
    @eduardocruz9505 3 роки тому +2

    Encontre un detalle a la hora de insertar un nodo en la posicion 1.
    Lo que hago es lo siguiente:
    InsertarAlInicio(Libro1)
    insertarAlFinal(Libro2)
    insertarEnPosicion(0, Libro 4)
    insertarEnPosicion(1, Libro3)
    Resulta que el algoritmo, al entrar en el while() el puntero en automatico se posiciona en 1 porque contador=0 y 0

    • @eduardocruz9505
      @eduardocruz9505 3 роки тому +1

      A quien le pueda servir. Hice un repositorio con este ejemplo pero agregando algunos detalles que se omitieron en el video aparte del mencionado en mi comentario anterior (tiene muchos otros detalles que se pasan por alto).
      github.com/eduardoxcruz/Java_DataStructures/blob/master/src/com/eduardo/linkedlist/BookList.java

  • @leninsoto1756
    @leninsoto1756 3 роки тому +2

    Main
    public static void main(String[] args) {
    Lista2 lista=new Lista2();
    lista.insertarPrincipio(2);
    lista.insertarPrincipio(1);
    lista.insertarFinal(3);
    lista.insertarPrincipio(4);
    lista.imprimir();
    }
    La idea con la que esta hecho el vidEo seria enviarle un libro ,yo no me complique y lo combie por un entero.

    • @marcon7580
      @marcon7580 3 роки тому

      Como pusiste el metodo imprimir?

  • @LyricsSubtitulos
    @LyricsSubtitulos 4 роки тому

    No entiendo como el nodo "siguiente" en unas partes se usa como tipo de dato y en otras partes parece ser un metodo :(
    Es decir arriba lo instancias como una clase no? "Nodo siguiente = null;"... pero mas abajo se usa como metodo? "nodo.siguiente; / puntero.siguiente;" alguien ayuda :c

  • @daniloortiz7530
    @daniloortiz7530 3 роки тому +1

    Muy buena la teoría pero también falta q lo corras y ver los resultados

  • @imdanielreyes
    @imdanielreyes 2 роки тому

    y como agrego elemento a esa lista?

  • @mendezsaucedodulcemaria2255
    @mendezsaucedodulcemaria2255 3 роки тому

    por qué no me deja hacer lo del ".siguiente" D:

  • @gabrielsuarezbaron7469
    @gabrielsuarezbaron7469 3 роки тому

    Una pregunta, cual es el nombre de ese IDE

  • @carlosportugal8467
    @carlosportugal8467 8 років тому

    Cual IDE utilizas para java?

    • @makigas
      @makigas  8 років тому +2

      En ese vídeo, IntelliJ. Pero no estoy "casado" con ningún IDE, así que al final acabo usando más de uno según se dan las circunstancias.

    • @LyricsSubtitulos
      @LyricsSubtitulos 4 роки тому

      @@makigas Has usado alguna vez eclipse?

  • @YoeXCheneguein
    @YoeXCheneguein 9 років тому

    Que editor de texto utilizas bro?

    • @makigas
      @makigas  9 років тому +2

      Los vídeos de Java se graban con el IntelliJ IDEA.

  • @HugoHernandez-bw3hi
    @HugoHernandez-bw3hi 8 років тому

    En eliminar ultimo en vez de copiar el código de eliminarPrincipio, invoca el método para que se module mejor, es solo una sugerencia pero de resto muy buen materia felicitaciones.

    • @makigas
      @makigas  8 років тому +1

      Seguramente, pero como parte de la idea es reiterarme sobre cómo funcionan a nivel teórico los algoritmos que hay detrás de estas estructuras para que de forma subconsciente se le quede a quien vea el vídeo para aprender pues me viene bien repetirme xD

  • @juansabinotorresmariaca3433
    @juansabinotorresmariaca3433 3 роки тому

    alguien supo como hacer el main y llamar a los metodos de insertar?

  • @alejandrodiazmedellin898
    @alejandrodiazmedellin898 5 років тому

    para que sirve crear una variable que seadel tipo de la clase
    Nodo sieguiente;

    • @wineloy
      @wineloy 5 років тому

      Para que tengas la referencia de los otros nodos y puedas recorrerlos o agregar nuevos, como una lista agrego un nodo y en su siguiente puede ser null o tener otro nodo

  • @JuanJose-ce4hs
    @JuanJose-ce4hs 3 роки тому +1

    Alguien tiene el Main para que me lo pueda pasar por fa? Grax

  • @nicodominguez6081
    @nicodominguez6081 5 років тому

    y pensar que vi hace un año un tuto de lib gdx tuyo xd

  • @mikegreenscar8544
    @mikegreenscar8544 7 років тому

    Muy buen video, pero veo que cuando eliminas un nodo "eliminarLibro()" el objeto que estaba en ese nodo sigue en memoria, ¿eso está bien?.

    • @angeloorellana3623
      @angeloorellana3623 4 роки тому

      el recolector de basura de java limpia ese espacio en memoria automaticamente

  • @dealvin
    @dealvin 4 роки тому +3

    casi vole, lo haces muy rapido, quisiera tener esa velocidad :').
    Aunque al menos me salio, pero muy lento .....

  • @cristianalonsohernandezzav594
    @cristianalonsohernandezzav594 4 роки тому

    No hay problema si lo hago en Java NetBeans?

    • @makigas
      @makigas  4 роки тому +1

      En absoluto, no depende del IDE.

  • @ArmanGO-Oficial
    @ArmanGO-Oficial 3 роки тому

    Que es un nodo??

  • @katheringomezcanaveral88
    @katheringomezcanaveral88 4 роки тому

    Y como hago el metodo mostrar??

    • @lincehumano7978
      @lincehumano7978 4 роки тому

      public void mostrarLista(){

      Nodo puntero=cabeza;
      while(puntero!=null){


      System.out.print("["+puntero.dato+"]--->");
      puntero=puntero.siguiente;
      }
      System.out.println();


      }

  • @kevinjaimes7635
    @kevinjaimes7635 2 роки тому

    y el el main ?

  • @juansabinotorresmariaca3433
    @juansabinotorresmariaca3433 3 роки тому +1

    mport java.util.*;
    public class operaciones_con_listas_simp_enlazadas{
    public static void main (String[] args) {
    Lista lista = new Lista();
    Scanner s = new Scanner(System.in);
    String titulo = s.nextLine();
    String autor = s.nextLine();
    String isbn = s.nextLine();
    Libro libro = new Libro(titulo,autor,isbn);
    lista.InsertarFinal(libro);
    System.out.println(""+lista.obtener().getTitulo());
    titulo = s.nextLine();
    autor = s.nextLine();
    isbn = s.nextLine();
    Libro libro2 = new Libro(titulo,autor,isbn);
    lista.InsertarFinal(libro);
    System.out.println(""+lista.obtener().getTitulo());
    }
    }
    hi un intento de comoo meter los datos desde el main y nunca salio y me guie con mas tutoriales de ese canal

  • @quienmeaiuda9586
    @quienmeaiuda9586 4 роки тому

    Alguien sabe como eliminar el nodo anterior de un dato X?

    • @fernandoguerrero2535
      @fernandoguerrero2535 4 роки тому

      haz lo mismo que el hizo solo que en vez de -1 pon -2 y veras la magia xD

  • @jalf0007
    @jalf0007 5 років тому +2

    No hay duda que eres bueno, pero si estamos viendo este tutorial es porque somos principiantes, por lo menos la mayoría de nosotros. Vas demasiado rápido...

    • @osvaldoleiva678
      @osvaldoleiva678 4 роки тому +2

      A mi igual me cuesta pero esta bien explicado, lo que yo hago es pausar el video ejemplo en la explicacion de insertar nodo al final, pienso en la teoria o sea que es lo que quiero lograr con eso con esa funcion insertarFinal() luego con mi cuaderno grafico hago una lista de 3 nodos y voy haciendo dibujos de lo que esta pasando en el codigo, no se si me explique bien pero creo que ver todo el video sin poner pausa y esperar entender a la primera es una error que cometemos siempre yo en este video me demore como una hora en llegar a la mitad, suerte ojala que alguien le sirva

  • @kevinnakandakare2300
    @kevinnakandakare2300 5 років тому

    Esto sirve para el desarrollo web? o no tiene nada que ver?

    •  5 років тому

      Son estructura de datos, lo puedes aplicar en lo que sea, pero para eso existen los métodos push y pop xd

  • @adelpozoman
    @adelpozoman 3 роки тому

    si apruebo eped madre mía

  • @putinninovacuna8976
    @putinninovacuna8976 5 років тому +4

    no entiendo de qué me sirve esto? si ya existen map, list, array, hasmap con key etc. Qué sentido tiene aprender esto si ya existen soluciones no entiendo el porqué nos dan esto en las universidades

    • @makigas
      @makigas  5 років тому +7

      Es un poco como el dilema de "por qué debo aprender matemáticas si la calculadora las sabe hacer por mi". No siempre van a estar esas estructuras en la stdlib del lenguaje, si es que tiene stdlib el lenguaje que estás usando. Es la diferencia entre la Ciencia de la Computación y simplemente programar a secas. (Que no quiere decir que no esté secretamente un poco de acuerdo contigo)

    • @Villandroid
      @Villandroid 5 років тому +4

      Si se quiere dar solución a un problema del mundo real se necesita modelar, hacer o conocer como funcionan este tipo de estructuras te facilita ese paso

  • @jorgeernestopradaantia9904
    @jorgeernestopradaantia9904 6 років тому

    Amigo crea el main y haces tu mismo la prueba

  • @vagaryxd1307
    @vagaryxd1307 3 роки тому

    Habrá alguna manera de ingresar 10 numeros positivos y negativos para que después muetre por pantalla la suma de cuantos numeros positivos y negativos hay? no logro realizarlo

  • @ssmatiuri
    @ssmatiuri 9 років тому +1

    Pensé que ibas a usar genéricos para hacer la Lista, porque la clase Libro es totalmente inútil en el ejemplo y porque Java soporta genéricos.

    • @dicren
      @dicren 9 років тому

      Estoy con Matías, hubiese sido más útil explicarlo en C o usar las listas nativas.

    • @makigas
      @makigas  9 років тому +11

      Está explicado en C en el capítulo anterior, precisamente. Usar listas nativas en la vida real está bien, pero precisamente la gracia de este vídeo está en explicar cómo construir una lista de cero, no usar la que te da Java. Por otro lado, sí, se puede hacer con genéricos si se cambia "Libro" por "T" y "class Lista" por "class Lista". Punto. Eso no es lo importante, es la implementación de esos métodos.

  • @bryanillanishuaraca3544
    @bryanillanishuaraca3544 2 роки тому

    buen tutorial Pero, python te extraño

    • @makigas
      @makigas  2 роки тому

      Ya, se está quedando vieja la lista por culpa de eso, hoy en día se usa mucho Python para enseñar

  • @fast_cars267
    @fast_cars267 5 років тому +1

    la descarga

  • @waterfunk2353
    @waterfunk2353 3 роки тому

    no entendi absolutamente nada :(

  • @melchiah6603
    @melchiah6603 5 років тому +1

    En mi humilde e ignorante opinión, no tiene sentido hacer estructuras de datos en java. Los de c están geniales.

    • @osvaldoleiva678
      @osvaldoleiva678 4 роки тому +2

      pues si tiene sentido ejemplo: yo no se C pero si Java y quiero estudiar estructuras me dices que tengo que aprenderme C? yo no lo veo asi, es mejor tener en ambos lenguajes

    • @Ricardo-zk8zr
      @Ricardo-zk8zr 3 роки тому

      Porque es mejor en C?

  • @incredidude101
    @incredidude101 5 років тому

    soy el like #666 de este video...

    • @makigas
      @makigas  5 років тому

      ¿Tantos hay? 😯
      [ * abre el vídeo * ]
      Ah pues sí

  • @cracko6145
    @cracko6145 4 роки тому

    Explicar solo la parte para hacer la lista, dejando a nosotros terminar el main por nuestra cuenta? Señor Makigas, usted es un ser maligno.

  • @666maicol
    @666maicol 5 років тому +1

    No se entienda nada, no explicas bien.