¿Qué son y cómo funcionan los árboles? | Ejemplo de implementación

แชร์
ฝัง

ความคิดเห็น • 74

  • @sanchezcarlos1986
    @sanchezcarlos1986 2 ปีที่แล้ว +43

    Personalmente llevo poco tiempo profundizando en estructuras de datos y sería bueno ver casos de uso de por ejemplo un árbol binario y qué problemas podríamos resolver haciendo uso de ellos.
    Excelente video como siempre!!

    • @relojsaturno
      @relojsaturno 11 หลายเดือนก่อน +7

      parece que es un problema de los programadores en general, no saben poner ejemplos

    • @gerardellisantiagocruz4759
      @gerardellisantiagocruz4759 9 หลายเดือนก่อน +1

      Puede ser un ejemplo para guardar información de productos (medicamentos de una farmacia), en el que se toma como referencia para insertar los nodos es el ID del medicamento y posteriormente creas el abb, de esa forma cuando realices búsquedas las haces a partir de ID. Claro que implementar eso en una DB queda mejor, pero para ejercitar podría ser un ejemplo.

    • @DevFox
      @DevFox 7 หลายเดือนก่อน

      El tema con eso es que también podría usarse un Hash. Los casos con árboles son más específicos, como encontrar el camino más corto entre dos rutas, o incluso el de encontrar un costo más óptimo entre tres distintas opciones de contabilidad. ​@@gerardellisantiagocruz4759

  • @angelarmando2640
    @angelarmando2640 2 ปีที่แล้ว +10

    Execelente video, sería genial uno en donde se vea como podemos ocupar en un ejemplo

  • @Deedeefancy
    @Deedeefancy ปีที่แล้ว +1

    explicacion de arboles binarios y demas = ¡¡¡10 puntos !!!

  • @leslyhuamans.9268
    @leslyhuamans.9268 ปีที่แล้ว +3

    wow que explicación tan clara! Gracias!

  • @anomd3v
    @anomd3v 2 ปีที่แล้ว

    gran video muy bien explicado. algunas cosas no las entendia. devolvia y reconfirmaba. muy buen contenido explicado, aclarado, tipos, ejemplos todo. que genial. por eso te sigo porque algun contenido me interesa gracias.

  • @yaeluriel
    @yaeluriel 2 ปีที่แล้ว +3

    Ojalá subas más contenido de algoritmos de estructuras de datos y ordenamiento

  • @DanielVega-f5m
    @DanielVega-f5m 2 หลายเดือนก่อน

    Muy buen video bro!

  • @andresgarciaalves
    @andresgarciaalves 2 ปีที่แล้ว +2

    Buena intro a las estructuras de árboles. Por favor considera hacer una segunda parte comparando los distintos tipos de recorridos, me refiero a: depth first vs breadth first.
    Saludos y gracias 😀

  • @frms7571
    @frms7571 3 หลายเดือนก่อน

    excelente explicacion, me encantó

  • @andresbustamante972
    @andresbustamante972 2 ปีที่แล้ว

    Muchas gracias, me queda mas claro ahora. Son complicadas las recursividades para mi

  • @adrianrodriguez393
    @adrianrodriguez393 2 ปีที่แล้ว +1

    Excelente video. Muy bien explicado. Muchas gracias👍

  • @andresguanov
    @andresguanov ปีที่แล้ว

    Gracias por tus vídeos !!!

    • @vidamrr
      @vidamrr  ปีที่แล้ว

      A la orden Andrés 🫡

  • @mariosanchez-iq7md
    @mariosanchez-iq7md 2 ปีที่แล้ว

    you are the best bro!!!

  • @mastermaster153
    @mastermaster153 2 ปีที่แล้ว +1

    Justo el cuatri pasado vi este tema en la escuela pero este vídeo obvio tiene una excelente explicación y mejor, y me hizo ver que esté tema sí es de importancia xd

  • @Niojar
    @Niojar 2 ปีที่แล้ว

    Gracias por estos vídeos

  • @oddocid9734
    @oddocid9734 2 ปีที่แล้ว +1

    Excelente!!

  • @wasm30
    @wasm30 2 ปีที่แล้ว

    Excelente video

  • @martindejesusleanoshernand6342
    @martindejesusleanoshernand6342 2 ปีที่แล้ว +6

    Estudie hasta secundaria y no era el mejor, cuando quería fragmentar un componente de 2000 líneas estaba estresado, recuerdo que mirando las ramas de un árbol, lo lleve al programación y quedó óptimo, ahora puedo usar mi versión de grafos y nodos abstractos para resolver problemas por muy complejos que sean.

  • @meditacionzen6731
    @meditacionzen6731 ปีที่แล้ว

    que buenos ejemplos

  • @gameplaysrules2023
    @gameplaysrules2023 2 ปีที่แล้ว

    hubieras subido el codigo para poder analizarlo mejor, aun asi, muchas gracias ese es uno de los temas que me hacen falta aprender para hacer entrevistas :)

  • @javierwendel9961
    @javierwendel9961 ปีที่แล้ว

    Hace poco empecé con la teoria de arboles, y como el profesor no sabe explicar (sabe, pero no explicar), me pierdo. Gracias a vos, ahora entiendo =). Cuando vea de nuevo el video le voy a bajar la velocidad, lo explicaste al codigo a lo Flash jaja. Saludos!

  • @alfin45
    @alfin45 4 หลายเดือนก่อน +1

    Video bueno, explicación clara, pero quiero un uso práctico.
    ¿Cómo se usa en la realidad?
    Casos de uso reales y utilidad por favor.
    Por ejemplo hacerlo con letras y nombres y cómo se implementaría en Cádiz reales por favor.
    Por favol.
    ☺️
    🙏

  • @panchofjf
    @panchofjf ปีที่แล้ว

    ¿Podrías hacer un video explicando sobre la eliminación de nodos? En todos los casos posibles (sin hijos, con 1 hijo y con 2 hijos).

  • @brandonbarreras2598
    @brandonbarreras2598 2 ปีที่แล้ว

    Excelente contenido bro, una duda ajena a la programación, pero relacionada un poco, como se llama la silla que tienes?

  • @WiyermoW
    @WiyermoW 2 หลายเดือนก่อน +1

    Ahora los árboles binarios ya me son más claros, gracias!
    Tengo la leve sospecha de que un método que llene el árbol e imprimirlo en inorder sería en si mismo un método de ordenamiento. O estoy mal?
    Seguí paso a paso pero lo hice en Java, y resulta que el método/función de inorder me arroja todo bien excepto los 2 últimos valores. ¿?
    Se me hizo interesante que con tu video, también aprendí a aplicar recursividad en Java, gracias! Yo solía hacerlas pero en C y ya tenía sus años que usaba recursividad. Soy AQA, y quiero profundizar Estructuras y más temas de Dev para convertirme en SDET, me doy una idea de dónde puedo aplicar árboles en AQA, me tocará experimentar.

    • @WiyermoW
      @WiyermoW 2 หลายเดือนก่อน +1

      public class BinaryTree {
      public final Node root = new Node(6);
      public final Node node1 = new Node(4);
      public final Node node2 = new Node(1);
      public final Node node3 = new Node(5);
      public final Node node4 = new Node(8);
      public final Node node5 = new Node(9);

      public BinaryTree(){
      root.left = node1;
      root.right = node4;

      node1.left = node2;
      node1.right = node3;

      node4.left = node5;
      }

      public void inorder(Node node){
      if(node == null){
      return;
      }

      inorder(node.left);
      System.out.println(node.value);
      inorder(node.right);
      }

  • @brayanalexischaconalvarado3960
    @brayanalexischaconalvarado3960 4 หลายเดือนก่อน

    soy nuevo en esto y estudiante de estructura de datos por primera vez, no se enel dia a dia como aplicaria esto, por ahora me explota la mente pero se que lo comprendere

    • @vidamrr
      @vidamrr  4 หลายเดือนก่อน +1

      Muchas estructuras de datos son como ecuaciones diferenciales, muy probablemente las usas sin siquiera usarlas explícitamente porque alguien ya las usó para desarrollar alguna herramienta. Lo importante no es que las apliques sino que entiendas cómo funcionan, con eso ya la hiciste 👍🏻

  • @larissamoreno9508
    @larissamoreno9508 10 หลายเดือนก่อน

    En 1:30 mencionas que la referencia nula. Me puedes explicar un poco más de esto? Soy bastante nueva en esto. Se agradece de antemano.

    • @vidamrr
      @vidamrr  10 หลายเดือนก่อน

      Quiere decir que una variable es nula, o sea que hay una dirección en memoria pero no tiene ningún valor

  • @UnDarkVader
    @UnDarkVader 2 ปีที่แล้ว

    Disculpen la ignorancia: ¿Por qué utilizas "dry" para ejecutar el código de JS con node? ¿No bastaría con "node ejemplo-1.js"?

  • @negocl
    @negocl 2 ปีที่แล้ว +1

    Teóricamente es genial, pero creo para mayor entendimiento seria mejor utilizar un ejemplo de uso real de esta teoría. Osea donde se usa y como se implementa en un software de la vida diaria...

  • @baldomero7458
    @baldomero7458 2 ปีที่แล้ว

    Si no me equivoco la funcion find recorre gran parte del arbol, aun si el nodo se encuentra en el segundo nivel. Pregunta: se supone que asi funcione o solo fue una funcion de ejemplo?

    • @vidamrr
      @vidamrr  2 ปีที่แล้ว

      La función find puede recorrer todo el árbol para encontrar la referencia, a menos que encuentre el valor antes. Si lo encuentra entonces le regresa a su nodo padre la referencia de su nodo. Luego el padre va a comparar el lado izquierdo como derecho y si encuentra algo diferente de nulo regresa a su padre ese valor y así sucesivamente hasta llegar a root. Cómo es un método de propagación aunque de un lado encuentre el valor en el primer o segundo nivel del otro lado tiene que hacer el recorrido igual. El ejemplo representa ese algoritmo

  • @videoslandiaglobal3071
    @videoslandiaglobal3071 2 ปีที่แล้ว +1

    puedes Sacar uso de Hash table por favor explicado con Codigo!!

  • @gameplaysrules2023
    @gameplaysrules2023 2 ปีที่แล้ว

    tambien hubeiera sido muy bueno que hubieras dejado unos probleamas de haker rank o alguna de esa pagina donde la solucion fuera implementar un arbol un arbol

  • @heribertohernandezcastella5671
    @heribertohernandezcastella5671 2 ปีที่แล้ว

    No sabía nada de sobre nodos, entendí el diagrama, pero no sé cómo implementaría esa lógica en algún proyecto.

  • @ryfr1702
    @ryfr1702 2 ปีที่แล้ว

    yo aprendí estructuras de datos/ listas, pilas, colas, arboles, árboles barios et ctec con c y c++

  • @krascheninnikoviam
    @krascheninnikoviam 2 ปีที่แล้ว

    Se entiende, pero habría algún ejemplo real y práctico del día a día de un programador web donde esto se pueda implementar? Gracias

    • @felixpaniagua6018
      @felixpaniagua6018 2 ปีที่แล้ว +1

      HTML funciona como un nodo. Si te fijas, html es el elemento raíz o root y sus hijos son el head y el body. El head se encuentra a la izquierda del body aunque lo veamos arriba del body podemos imaginarlo como si estuviera a la izquierda. El head tiene etiquetas dentro que son sus hijos. El body tiene tantos hijos como quieras y cuando manipulamos el dom podemos acceder a estos hijos con los selectores que son muy buenos a la hora de seleccionar nodos de estos mismos aunque no se cumple al 100% la regla de que el elemento izquierdo debe de ser menor que el derecho, si te puede dar una idea del uso de esta estructura y de lo útil que es en ciertos casos.

    • @vidamrr
      @vidamrr  2 ปีที่แล้ว +3

      El DOM es un árbol de nodos, si sabes un poco de HTML y Javascript estás usando nodos. El sistema de archivos de tu computadora es un arbol. Cualquier algoritmo de toma de decisiones para una AI funciona con un árbol de decisiones. Cualquier editor WYSIWYG implementa árboles para poder pintar contenido enriquecido. Cualquier buscador web decente implementa árboles para búsquedas más rápidas, etc etc etc

  • @simonperez825
    @simonperez825 2 หลายเดือนก่อน

    definicion de arbol balanceado
    diferencia( altura(subárbol izq) - altura(subárbol der) )

    • @intiemanuelgoni1126
      @intiemanuelgoni1126 2 หลายเดือนก่อน +1

      esa era mi duda, gracias por comentarlo

  • @UnDarkVader
    @UnDarkVader 2 ปีที่แล้ว

    😂En el segundo 12:32, le traicionó el subconsciente con C++.

  • @harlesepc5906
    @harlesepc5906 ปีที่แล้ว +1

    Siempre veo las mismas explicaciones de los arboles y su funcion, pero a nivel de programacion en la vida cotidiana, no creo que solo me van a poner a buscar un valor. Realmente en que situaciones se utilizarian arboles.

    • @vidamrr
      @vidamrr  ปีที่แล้ว +2

      Cuando usas el DOM en Javascript estás usando árboles, o al hacer una búsqueda, o hacer algoritmos de toma de decisiones

  • @gerardoovando5250
    @gerardoovando5250 10 หลายเดือนก่อน

    Estoy estudiando BTS, y me surgió una duda, para realizar una validación, como puedo comprobar si por ejemplo la inserción de algún numero tanto en el sub árbol izquierdo o sub árbol derecho, harían que dejara de ser un BTS.
    Me surgió esa duda, se que las propiedades son que (hijo.izq y todos sus hijos) < raiz < (hijo.derecha y todos sus hijos).
    Pero hay forma de romper un BTS al momento de hacer alguna inserción.
    Saludos y gracias si alguien logra responder, perdón si es una pregunta tonta.

  • @relojsaturno
    @relojsaturno 11 หลายเดือนก่อน +12

    Siempre lo mismo con los programadores ,no saben dar ejemplos concretos de uso de lo que explican

    • @vidamrr
      @vidamrr  11 หลายเดือนก่อน +9

      No lo entenderías

    • @relojsaturno
      @relojsaturno 11 หลายเดือนก่อน +4

      ​@@vidamrrQuizá yo no lo entienda,pero el resto de la gente puede que sí .Hace la prueba,pone un ejemplo. Porque explicar como es una estructura de datos y no decir para qué puede servir,no tiene sentido

    • @streelet8647
      @streelet8647 10 หลายเดือนก่อน +5

      @@relojsaturnopues es que nosotros si sabemos para que sirven

    • @relojsaturno
      @relojsaturno 10 หลายเดือนก่อน

      @@streelet8647 o sea que hacer un video explicativo no tiene sentido

    • @ChileMations
      @ChileMations 7 หลายเดือนก่อน

      ​@@relojsaturnoliteralmente el titulo del video es que son y como funcionan los arboles, nada mas q eso

  • @dearalex2056
    @dearalex2056 2 ปีที่แล้ว

    Apenas conozco el Bubble sort :v

  • @JOSEGOAVALOSGO
    @JOSEGOAVALOSGO 6 หลายเดือนก่อน

    Qué lenguaje es este?

  • @soran2290
    @soran2290 2 ปีที่แล้ว

    Se entendería mejor con código

    • @vidamrr
      @vidamrr  2 ปีที่แล้ว +1

      Hay código en el video 😆😆😆😆

  • @BobbyLonely
    @BobbyLonely 2 ปีที่แล้ว

    mi cerebro se derritio enserio :( nunca aprender a programar :c

  • @jessp.m3074
    @jessp.m3074 ปีที่แล้ว

    peeeeeero que son arboles y forestas???? pregunta de bachiller que no me deja en paz

    • @vidamrr
      @vidamrr  ปีที่แล้ว

      Solo existen los árboles con sus variantes, nunca he escuchado forestas como estructura de datos

  • @VelionG
    @VelionG 8 หลายเดือนก่อน

    Este tipo explica horrible no se le entide nada

    • @vidamrr
      @vidamrr  8 หลายเดือนก่อน

      😔

  • @noeliafernanda1061
    @noeliafernanda1061 10 หลายเดือนก่อน

    No entendí lo último, el find