46 - Árboles Binarios de Búsqueda AVL, Implementación Parte 1 (EDDJava)

00:19:56
https://www.youtube.com/watch?v=_z4xMj6C2yw

概要

TLDREste vídeo (capítulo 46 da serie) aborda a implementación dun AVL en Java, dividindo o proceso en dúas partes para facelo máis manexable. Primeiro, créanse as clases "NodoÁrbol" e "ÁrbolAVL" para estruturar a lóxica da aplicación. Os métodos principais implementados inclúen "buscar" para localizar nodos específicos e "obtenerFE" para calcular o factor de equilibrio do nodo. Ademais, o tutorial inclúe a implementación de rotacións simples e dobres tanto á esquerda como á dereita, que son fundamentais para manter equilibrado o AVL tras insercións ou borrados.

収穫

  • 👨‍🏫 Introdución á implementación de AVL en Java.
  • 🌳 Creación das clases NodoÁrbol e ÁrbolAVL.
  • 🔄 Implementación de rotacións simples e dobres.
  • 📐 Cálculo do factor de equilibrio.
  • 🔍 Método para buscar nodos no AVL.
  • 🔧 Enfoque modularizado en dúas partes.
  • ⚙️ Lóxica detrás das rotacións de árbore.
  • 📝 Importancia do método obterFE.
  • 📚 Exercicio práctico de programación.
  • 💻 Mantemento da eficiencia nun AVL.

タイムライン

  • 00:00:00 - 00:05:00

    Neste vídeo, introdúcese o proxecto número 46 relacionado con a creación dun árbol AVL, dividido en dúas partes para simplificar a aprendizaxe. Inicialmente, o proxecto é configurado con dúas clases principais: NodoÁrbol e ÁrboreAVL, onde NodoÁrbol conterá atributos como o dato, o factor de equilibrio (un concepto novo introducido neste proxecto), e os fillos (esquerdo e dereito). A implementación de NodoÁrbol é descrita en detalle, enfatizando a súa construción e inicialización de fillos.

  • 00:05:00 - 00:10:00

    O seguinte paso detállase a clase ÁrboreAVL, comezando pola declaración do nodo raíz e o seu constructor, que inicializa a raíz como nula. Introdúcese o primeiro método, 'buscar', que é un método recursivo usado para buscar un nodo no árbol, comparando datos e navegando polos fillos esquerdo ou dereito segundo sexa necesario. Ademais, descríbese un método para obter o factor de equilibrio, esencial para mantelo AVL equilibrado.

  • 00:10:00 - 00:19:56

    Finalmente, explícanse as operacións de rotación necesarias para manter o equilibrio do AVL: rotación simple á esquerda, á dereita, e rotacións dobres. Cada método de rotación segue un algoritmo específico para axustar os punteros dos nodos dentro do árbol. Estas operacións son fundamentais para asegurar que o AVL manteña as propiedades balanceadas. O vídeo conclúe coa promesa de implementar a inserción de nodos na próxima parte.

マインドマップ

Mind Map

よくある質問

  • Que clase se crea para manexar os nodos?

    A clase chamada "NodoÁrbol".

  • Que é un AVL?

    Un AVL é un tipo de árbore binario balanceado que mantén o balance a cada inserción ou eliminación para garantir un rendemento eficiente.

  • Que métodos de rotación se implementan?

    Implémentanse os métodos: rotación sinxela esquerda, rotación sinxela dereita, rotación dobre esquerda e rotación dobre dereita.

  • Cal é a función do factor de equilibrio?

    O factor de equilibrio axuda a manter o balance dun AVL calculando a diferenza de alturas dos subárbores esquerdo e dereito.

  • Por que se divide a implementación do AVL en dúas partes?

    Divídese en dúas partes para que o proceso non sexa tan longo e tedioso.

ビデオをもっと見る

AIを活用したYouTubeの無料動画要約に即アクセス!
字幕
es
オートスクロール:
  • 00:00:00
    bueno
  • 00:00:12
    qué tal qué tal ya estamos aquí con el
  • 00:00:14
    vídeo tutorial número 46 de la serie
  • 00:00:16
    estructuras de datos con llave y vamos a
  • 00:00:18
    empezar con la acción muy bien el día de
  • 00:00:20
    hoy vamos a implementar nuestro abel al
  • 00:00:24
    cual lo vamos a dividir en dos partes
  • 00:00:25
    para que nos haya no se haga tan largo y
  • 00:00:28
    tan tedioso el asunto vamos a crear
  • 00:00:30
    nuestra nuestra aplicación a la cual le
  • 00:00:33
    vamos a poner cda vídeo punto
  • 00:00:39
    es el 46 verdad perfecto
  • 00:00:43
    aplicamos esto de aquí y le ponemos
  • 00:00:46
    finish
  • 00:00:49
    perfecto entonces ahora lo que vamos a
  • 00:00:51
    hacer es crear dos nuevas clases en esta
  • 00:00:55
    parte de aquí vamos a crear nuestra
  • 00:00:56
    primera clase a la cual le vamos a poner
  • 00:00:59
    nodo árbol
  • 00:01:03
    de el que se va a ser nuestro nodo y una
  • 00:01:07
    nueva clase que se llame árbol
  • 00:01:11
    a vélez que es en donde vamos a poner
  • 00:01:14
    toda la lógica de nuestro de nuestra
  • 00:01:16
    aplicación vamos a arrancar entonces en
  • 00:01:19
    nuestra clase no dudar por el día de
  • 00:01:21
    vamos a trabajar en nuestra clase modo
  • 00:01:23
    árbol y dentro de nuestra clase no los
  • 00:01:26
    vamos a declarar dos atributos el
  • 00:01:28
    clásico gato y vamos a tener uno nuevo
  • 00:01:31
    que se va a llamar
  • 00:01:32
    efe efe factor de equilibrio
  • 00:01:35
    eso es en ese vamos a trabajar también
  • 00:01:37
    es lo nuevo vamos a poner entonces
  • 00:01:39
    nuestro constructor nodo árbol nodo
  • 00:01:43
    árbol la fe el lema ahí están y
  • 00:01:46
    lógicamente este nodo árbol ave le va a
  • 00:01:49
    recibir el dato entonces le ponemos this
  • 00:01:53
    punto dato igual a d y le ponemos this
  • 00:01:58
    puntos e igual a cero porque al
  • 00:02:02
    principio pues no sabemos que tiene 10
  • 00:02:04
    puntos hijo izquierdo
  • 00:02:08
    que por cierto no nos hemos declarado
  • 00:02:10
    hay que declarar los en esta parte de
  • 00:02:12
    acá porque pues es obvio necesitamos un
  • 00:02:14
    hijo izquierdo y un hijo derecho aquí
  • 00:02:16
    vamos a poner los nodos árbol a vélez y
  • 00:02:20
    le vamos a poner hijo y si pierdo
  • 00:02:26
    y aparte lógicamente el hijo derecho
  • 00:02:31
    de hecho ahí está y en esta parte vamos
  • 00:02:36
    a poner la horas y luego izquierdo igual
  • 00:02:41
    ah
  • 00:02:42
    y lógicamente dis
  • 00:02:45
    qué bueno soy como secretaria hijo
  • 00:02:47
    derecho igual
  • 00:02:50
    eso es todo lo que va a tener nuestra
  • 00:02:53
    clase
  • 00:02:55
    modo árbol de el perfecto hasta ahí
  • 00:02:58
    vamos más que al millones vamos para que
  • 00:03:01
    ahora a nuestra clase árbol a vélez y en
  • 00:03:05
    esta clase árbol
  • 00:03:07
    abel exactamente en dónde vamos a hacer
  • 00:03:09
    todo el show
  • 00:03:12
    que yo vamos a hacer en esa parte de ahí
  • 00:03:14
    pues lo primero que necesitamos pues es
  • 00:03:17
    lógicamente empezar a trabajar con
  • 00:03:20
    nuestra raíces entonces vamos a declarar
  • 00:03:22
    nuestra raíz ya la cual vamos a poner
  • 00:03:24
    primer nudo un árbol bl y le vamos a
  • 00:03:31
    poner raíz a y está perfecto ahora aquí
  • 00:03:36
    por aquí todo árbol ave el equipo lo que
  • 00:03:40
    tengo por aquí en esta parte de aquí
  • 00:03:42
    déjenme checo porque diablos me está
  • 00:03:44
    saliendo de aquí yo creo que el árbol y
  • 00:03:48
    si le ponemos lo que es tal vez sería
  • 00:03:50
    más bonito verdad y te das cuenta que no
  • 00:03:51
    está me está como que marcando una rocío
  • 00:03:54
    medio medio subliminal vamos para acá y
  • 00:03:59
    lo tenemos vamos a copiar esto de aquí
  • 00:04:01
    porque saben que soy re bueno
  • 00:04:03
    escribiendo y
  • 00:04:05
    y aquí lo vamos a poner así y así ya se
  • 00:04:09
    ve más bonito y aunque pues uno nunca
  • 00:04:11
    vaya del secretariado no se me da común
  • 00:04:14
    y aunque tomé cursos digo
  • 00:04:16
    definitivamente no se me dais la
  • 00:04:18
    programación tampoco finalmente nada más
  • 00:04:20
    es estar ayudando al prójimo perdiendo
  • 00:04:22
    el tiempo un ratito aquí para que esto
  • 00:04:25
    esté más que perfecto muy bien pues
  • 00:04:26
    entonces ahora lo que vamos a hacer es
  • 00:04:28
    después de haber declarado nuestro
  • 00:04:30
    nuestro modo árbol a vélez llamado raíz
  • 00:04:33
    pues vamos a crear nuestro constructor a
  • 00:04:35
    lo cual le vamos a poner árbol a bl y ya
  • 00:04:39
    sabemos que ahí lo tenemos y para lo
  • 00:04:41
    único que nos va a servir el constructor
  • 00:04:43
    ya hacemos es para inicializar la raíz
  • 00:04:46
    en nulo ahí está todo perfecto ok vamos
  • 00:04:51
    a arrancar vamos a crear un método
  • 00:04:53
    primer método el primer método que vamos
  • 00:04:55
    a hacer es para buscar un nuevo por ahí
  • 00:04:57
    a lo mejor después éste lo ocupamos e
  • 00:05:00
    igual no lo ocupamos pero finalmente las
  • 00:05:02
    las operaciones básicas de una bl pues
  • 00:05:06
    es buscar un modo insertar un nodo y
  • 00:05:08
    eliminar uno
  • 00:05:09
    vamos a crear nuestro método buscar y
  • 00:05:12
    aquí vamos a poner public
  • 00:05:15
    modo árbol a vélez buscar
  • 00:05:19
    y ahora sí vamos a poner aquí
  • 00:05:23
    lógicamente para buscar pues necesitamos
  • 00:05:26
    el dato y aparte necesitamos la raíz
  • 00:05:28
    nodo árbol y vamos a poner r ahí está ok
  • 00:05:31
    vamos a retornar un tipo de del equipo
  • 00:05:33
    no lo vamos a empezar a validar le vamos
  • 00:05:36
    a poner si reid igual igual a 9 qué
  • 00:05:39
    quiere decir si la raíz es igual al
  • 00:05:41
    igual el muy pues hay que retornar un un
  • 00:05:43
    porque no hay absolutamente nada en
  • 00:05:46
    donde buscó si no hay nada en otro caso
  • 00:05:48
    si por ejemplo ere de dato es digamos
  • 00:05:55
    igualito a de qué quiere decir si es
  • 00:05:57
    igual y puede que ya lo encontró no y
  • 00:06:00
    entonces vamos a retornar
  • 00:06:01
    aquí vamos a retornar pues a r
  • 00:06:04
    efectivamente en otro caso sino si por
  • 00:06:08
    ejemplo ere de dato es menor
  • 00:06:13
    el dato buscado por ejemplo que es lo
  • 00:06:17
    que vamos a retornar pues vamos a
  • 00:06:18
    retornar pero vamos a buscar cómo se
  • 00:06:20
    recursividad vamos a buscar por la
  • 00:06:22
    izquierda porque supone que el error de
  • 00:06:24
    dato es menor al dato buscado no
  • 00:06:27
    entonces hay que si es menor entonces
  • 00:06:29
    hay que buscar por la derecha agarrar
  • 00:06:31
    perfecto estamos en todo buscar y le
  • 00:06:34
    vamos a poner ere de hijo derecho
  • 00:06:37
    ahí está perfecto si de cierre de dato
  • 00:06:40
    es éste
  • 00:06:44
    menor a de pues simplemente vamos a
  • 00:06:48
    buscar volvemos a abbas hemos
  • 00:06:51
    recursividad y buscamos por la derecha r
  • 00:06:54
    de hijo derecho pero lógicamente hay que
  • 00:06:56
    recuerda que este recibe un parámetro
  • 00:06:58
    que el cual parámetro esa parte del nodo
  • 00:07:01
    es un dato entonces le ponemos de y así
  • 00:07:04
    ya se va a ver más bonito no entonces
  • 00:07:06
    ahora le ponemos si no pues no hay de
  • 00:07:08
    otra si no es él si no es menor es mayor
  • 00:07:11
    de hecho aquí vamos a validar en algún
  • 00:07:14
    momento recordando que nuestro árbol
  • 00:07:15
    binario anterior no tenía validación en
  • 00:07:17
    cuanto a nodos
  • 00:07:18
    a ver los duplicados en este ya no va a
  • 00:07:20
    ver porque el árbol balanceado no tiene
  • 00:07:22
    nodos duplicados entonces somos para que
  • 00:07:24
    ésta le vamos a poner return buscar por
  • 00:07:28
    dónde vas a buscar ok de gomita ere de
  • 00:07:33
    hijo izquierdo ok
  • 00:07:35
    ahí está perfecto hasta ahí vamos bien
  • 00:07:37
    eso es lo que haría en teoría nuestro
  • 00:07:39
    método buscar para buscar un nudo en el
  • 00:07:42
    árbol vamos a recursividad a en su
  • 00:07:45
    máxima expresión vamos para este lado y
  • 00:07:49
    ahora lo que vamos a crear es un método
  • 00:07:51
    para obtener obtener el factor de
  • 00:07:55
    equilibrio
  • 00:07:57
    ahí está ok vamos a obtener el factor de
  • 00:08:00
    equilibrio entonces vamos a retornar un
  • 00:08:02
    entero y al cual le vamos a poner
  • 00:08:04
    obtener
  • 00:08:06
    efe que va a recibir de de parámetro
  • 00:08:10
    pues un tipo nodo árbol al cual le vamos
  • 00:08:14
    a poner equis porque no sabemos cuál es
  • 00:08:16
    el tomar a sí mismo no la variable es lo
  • 00:08:17
    de menos ahora sí vámonos a la lógica
  • 00:08:20
    vamos a comenzar si x es igual igual a
  • 00:08:24
    nu lo que quiere decir si x es igual a
  • 00:08:26
    igual a nulo muy fácil retornamos un -1
  • 00:08:30
    para que más adelante vas a saber para
  • 00:08:32
    qué diantres s s menos 1 en otro caso
  • 00:08:36
    simplemente qué vamos a hacer vamos a
  • 00:08:39
    retornar x punto f
  • 00:08:43
    retornamos el factor de equilibrio del
  • 00:08:45
    kk ok perfecto eso es para obtener el
  • 00:08:48
    factor de equilibrio ahora vamos a hacer
  • 00:08:51
    las rotaciones vamos a hacer la rotación
  • 00:08:55
    simple izquierda vamos a empezar con la
  • 00:08:59
    rotación simple de la izquierda y lo que
  • 00:09:01
    vamos a hacer es un método público
  • 00:09:03
    lógicamente que nos retorne un tipo de
  • 00:09:05
    tipo no de árbol y le vamos a poner
  • 00:09:07
    rotación y pierna izquierda
  • 00:09:14
    híjole qué bueno soy ya lo sabemos
  • 00:09:16
    verdad todo el mundo lo sabe que todo
  • 00:09:18
    méxico se entere como decía el programa
  • 00:09:20
    de hace mucho tiempo de él de algún
  • 00:09:24
    programa televisivo que todo méxico y
  • 00:09:25
    que todo el planeta y todo el mundo
  • 00:09:27
    mundial dijo diversia se entere rotación
  • 00:09:30
    izquierda que va a hacer con rotación de
  • 00:09:32
    izquierda todo lógicamente va a recibir
  • 00:09:33
    un uno del tipo nodo árbol al cual le
  • 00:09:36
    vamos a ponerse vivo es significativo
  • 00:09:38
    nada más no es no es más que eso y vamos
  • 00:09:40
    a crear un nodo un puntero del tipo nodo
  • 00:09:43
    árbol al cual le vamos a poner auxiliar
  • 00:09:45
    para variar un poco y lógicamente lo
  • 00:09:48
    vamos a apuntar a cede hijo izquierdo
  • 00:09:51
    ahí está ok después de que ya hicimos
  • 00:09:53
    ese yo ahora le decimos que se dé hijo
  • 00:09:56
    de hijo izquierdo va a ser igual a
  • 00:10:00
    auxiliar ahí está a auxiliar de hijo
  • 00:10:05
    derecho de hijo derecho ahí está
  • 00:10:07
    perfecto esto es nada más ir
  • 00:10:09
    reacomodando los punteros ok como
  • 00:10:12
    siempre he dicho con dibujitos todo todo
  • 00:10:14
    todo nunca lástima dijo no queremos
  • 00:10:15
    extendernos y no nos podríamos pasar
  • 00:10:18
    aquí con dibujitos viendo cómo se iban
  • 00:10:19
    manejando
  • 00:10:21
    ahora sí vamos a ponerse out el auxiliar
  • 00:10:24
    vamos a mover al auxiliar de hijo
  • 00:10:26
    derecho lo vamos a apuntar exactamente
  • 00:10:30
    hace ahí ni más ni menos después de que
  • 00:10:32
    hayamos apuntado eso hace ahora sí vamos
  • 00:10:36
    a decirle sabes que ence su factor de
  • 00:10:38
    equilibrio va a ser igual a vamos a
  • 00:10:41
    obtener el máximo muy fácil vamos
  • 00:10:43
    podemos hacer un método pero para cruz
  • 00:10:45
    ir a hacerlo si ya lo tenemos hecho
  • 00:10:47
    vamos a poner más punto max max es un
  • 00:10:50
    método que me que me devuelve el máximo
  • 00:10:53
    de dos valores es decir de dos en este
  • 00:10:55
    caso los tipos enteros entonces lo que
  • 00:10:57
    voy a hacer es no le voy a decir sabes
  • 00:10:59
    que os teme el factor de equilibrio de
  • 00:11:03
    quién de quién me vas a obtener el
  • 00:11:04
    factor de equilibrio pues va a ser muy
  • 00:11:07
    fácil del tc de hijo izquierdo
  • 00:11:11
    de punto hijo izquierdo ahí está y en
  • 00:11:14
    esta parte de acá también lo voy a
  • 00:11:16
    deslizar es que también obtenemos
  • 00:11:17
    obtener el factor de equilibrio pero
  • 00:11:20
    ahora va a ser de cee de hijo derecho
  • 00:11:23
    punto fijo derecho ahí está pero todavía
  • 00:11:26
    nos falta algo importantísimo que es muy
  • 00:11:29
    importantísimo le vamos a sumar más uno
  • 00:11:32
    porque recordemos que el factor de
  • 00:11:34
    equilibrio es el nivel más 1 es decir si
  • 00:11:38
    el último nivel es el 3 pues hay que
  • 00:11:40
    ponerle más 1 porque ese es la altura
  • 00:11:42
    real ese es el factor de equilibrio
  • 00:11:43
    aunque ya lo tenemos recapitulando ese
  • 00:11:46
    punto factor de equilibrio va a ser
  • 00:11:49
    igual a matt punto más a obtener peso
  • 00:11:53
    obtener factor de equilibrio de ese
  • 00:11:56
    punto izquierdo y también a mandamos de
  • 00:11:59
    paraná como parámetro de obtener factor
  • 00:12:01
    de equilibrio de sede hijo derecho y
  • 00:12:03
    simplemente le sumamos más muy bien
  • 00:12:05
    ahora lo que vamos a hacer es también
  • 00:12:07
    sacarle el factor de equilibrio para
  • 00:12:09
    auxiliar entonces le ponemos factor de
  • 00:12:12
    equilibrio igualdad y ahora vamos a
  • 00:12:14
    copiar todo esto que tenemos aquí
  • 00:12:16
    y vamos a poner aquí y simplemente vamos
  • 00:12:19
    a hacer vamos a ver si lo hacemos unos
  • 00:12:20
    que otros cambios ellos aquí por ejemplo
  • 00:12:22
    en auxiliar obtener pesos de auxiliar de
  • 00:12:25
    hijo izquierdo aquí vamos a lógicamente
  • 00:12:27
    a poner auxiliar ahí está levantar ahora
  • 00:12:30
    vamos a obtener que es auxiliar del hijo
  • 00:12:33
    izquierdo y después lo ponemos a obtener
  • 00:12:35
    peso de auxiliar bueno en nuestro caso
  • 00:12:38
    obtener factor de equilibrio así fue
  • 00:12:40
    como le pusimos a obtener factor de
  • 00:12:42
    equilibrio de auxiliar de hijo derecho
  • 00:12:45
    aquí vamos a ponerle auxiliar lo que y
  • 00:12:48
    lógicamente le sumamos más uno para que
  • 00:12:51
    todo esté perfecto y ahora sí
  • 00:12:54
    simplemente vamos a retornar porque
  • 00:12:55
    recuerdan que el método nos requiere
  • 00:12:58
    retornar algo y vamos a retornar
  • 00:13:00
    auxiliar
  • 00:13:02
    pero restrepo ya tenemos vamos a a
  • 00:13:08
    acá este lado vamos a reducir un poquito
  • 00:13:10
    para acceder todo ahí está ok ahora sí
  • 00:13:14
    ya tenemos a nuestro primer método para
  • 00:13:17
    la rotación vamos a hacer ahora el
  • 00:13:19
    siguiente método al cual le vamos a
  • 00:13:21
    poner rotación simple derecha derecha
  • 00:13:25
    ahí está y ahora sí vamos a hacer
  • 00:13:28
    rotación simple a la derecha lógicamente
  • 00:13:30
    utilizando la teoría que ya habíamos
  • 00:13:32
    visto anteriormente vamos a hacer una
  • 00:13:34
    pequeña copit este pequeño copy test
  • 00:13:38
    programación sustentable le vamos a
  • 00:13:40
    poner rotación derecha ahí está vamos a
  • 00:13:44
    ver si por aquí los tenemos cambios y
  • 00:13:46
    ellos todavía le vamos a decir sabes que
  • 00:13:48
    es la rotación derecha le puedes poner
  • 00:13:52
    rotación simple si aquí tú lo decía yo
  • 00:13:54
    simplemente debe poner rotación derecha
  • 00:13:56
    y ahora sí creo el nodo ar no un tipo
  • 00:13:58
    modo árbol a vélez al cual también le
  • 00:14:01
    pongo auxiliar pero ahora no lo voy a
  • 00:14:03
    apuntar enlace no la voy a apuntar hacia
  • 00:14:06
    hijos quiero sino lo voy a apuntar hacia
  • 00:14:07
    el hijo derecha ese es el primer cambio
  • 00:14:09
    éxito que acabo de hacer después
  • 00:14:11
    lógicamente en esta parte de aquí
  • 00:14:14
    nuevamente se de hijo derecho aquí le
  • 00:14:17
    cambiamos el hijo derecho va a ser igual
  • 00:14:20
    a auxiliar de hijo izquierdo en esta
  • 00:14:22
    parte de aquí le cambiamos le ponemos
  • 00:14:24
    auxiliar de hijo izquierdo perfecto
  • 00:14:27
    ahora auxiliar de hijo izquierdo
  • 00:14:30
    nuevamente aquí cambiamos auxiliar de
  • 00:14:33
    hijo izquierdo va a ser igual a c
  • 00:14:36
    hasta ahí todo va más que perfecto ahora
  • 00:14:39
    vamos a empezar a hacer el factor de
  • 00:14:40
    equilibrio se de factor de equilibrio
  • 00:14:42
    obtener obtener el máximo de cede hijo
  • 00:14:46
    izquierdo obtener factor de equilibrio
  • 00:14:48
    de se le hijo derecho más uno ahí está
  • 00:14:52
    todo perfecto y después simplemente
  • 00:14:54
    auxiliar del factor de equilibrio le
  • 00:14:57
    vamos a obtener el máximo de obtener
  • 00:14:59
    factor de equilibrio de auxiliar de hijo
  • 00:15:03
    izquierdo y aparte
  • 00:15:05
    le vamos a decir obtener el factor de
  • 00:15:09
    equilibrio de auxiliar de hijo derecho y
  • 00:15:12
    le sumamos 1 y lógicamente retornamos al
  • 00:15:14
    auxiliar lo único que hicimos fue
  • 00:15:16
    cambiar nuestros punteros de esta parte
  • 00:15:19
    de acá qué
  • 00:15:20
    lo contrario a lo anterior porque ahora
  • 00:15:22
    las rotaciones por la derecha muy bien
  • 00:15:24
    volvamos con la doble vamos a poner
  • 00:15:28
    rotación doble a la derecha ahí está
  • 00:15:34
    vamos a crear nuestro método pues vamos
  • 00:15:36
    a poner public todo árbol lógicamente
  • 00:15:41
    estación
  • 00:15:44
    rotación híjole me emociono doble de ahí
  • 00:15:52
    está y es obvio que vamos a conceder
  • 00:15:57
    primero a la izquierda de la izquierda
  • 00:15:59
    para ir villadora el mismo orden de hace
  • 00:16:01
    un rato primero hicimos la izquierda de
  • 00:16:03
    la derecha y es obvio vamos vamos a
  • 00:16:06
    tener que recibir un parámetro igual va
  • 00:16:08
    a ser de tipo nodo árbol al cuales vamos
  • 00:16:11
    a ponerle c así de fácil
  • 00:16:14
    ahora sí vamos a empezar a hacer la
  • 00:16:15
    rotación doble a la izquierda muy bien
  • 00:16:17
    vamos a crear un nuevo árbol un puntero
  • 00:16:20
    del tipo nodo aguado al cual le vamos a
  • 00:16:22
    poner temporal si quieres puedes poner
  • 00:16:24
    auxiliar otra vez yo para cambiar un
  • 00:16:26
    poco lo voy a poner temporal y ahora sí
  • 00:16:28
    lo voy a ponerse de hijo izquierdo
  • 00:16:32
    va a ser igual a rotación rotación
  • 00:16:36
    derecha
  • 00:16:38
    exactamente vamos a hacer como que en
  • 00:16:40
    esta parte vamos en dentro de este vamos
  • 00:16:42
    a mandar llamar primero a la rotación
  • 00:16:44
    derecha y le vamos a enviar de
  • 00:16:46
    parámetros de hijo izquierdo ahí está
  • 00:16:50
    perfecto ahora temporal temporal va a
  • 00:16:54
    ser igual a rotación pero ahora rotación
  • 00:16:58
    izquierda la simple la que teníamos en
  • 00:17:01
    rotación la izquierda y le vamos a
  • 00:17:02
    enviarle el parámetro simplemente ese no
  • 00:17:04
    le vamos a enviar ningún hijo ni ni en
  • 00:17:07
    lo más mínimo y simplemente vamos a
  • 00:17:09
    retornar temporal
  • 00:17:12
    ahí está así de fácil es la rotación
  • 00:17:13
    izquierda este es un algoritmo que ya
  • 00:17:15
    está implementado si tú lo buscas en
  • 00:17:17
    wikipedia ahí lo tienes incluso hasta
  • 00:17:20
    hasta estar en su los algoritmos ya nada
  • 00:17:22
    más tienes que reutilizarlos
  • 00:17:23
    lógicamente reajustando la de acordar
  • 00:17:25
    tus valores o variables que tienes ahora
  • 00:17:28
    vamos a recapitular nodo árbol abel ya
  • 00:17:31
    creamos un temporal después
  • 00:17:33
    e hijo izquierdo es decir el puntero que
  • 00:17:35
    nos envían lo vamos a apuntar a que algo
  • 00:17:38
    que nos devuelva rotación derecha de cee
  • 00:17:41
    de hijo izquierdo y después temporal
  • 00:17:44
    simplemente le asignamos lo que nos
  • 00:17:46
    devuelva rotación izquierda enviándole
  • 00:17:49
    como como parámetro el el el puntero no
  • 00:17:53
    lo que nos pasen de estado de acá y
  • 00:17:54
    simplemente retornamos temporal vamos a
  • 00:17:57
    crear el último método de este vídeo
  • 00:17:59
    porque recuerda que ésta va a estar en
  • 00:18:00
    dos partes y vamos a poner doble a la
  • 00:18:04
    izquierda
  • 00:18:06
    ahí está vamos a hacer la rotación doble
  • 00:18:09
    a la izquierda y simplemente le ponemos
  • 00:18:10
    public nodo árbol
  • 00:18:14
    rotación
  • 00:18:16
    doble
  • 00:18:18
    doble derecha derecha
  • 00:18:22
    ya cuando uno se daña se daña y ahora si
  • 00:18:25
    le ponemos a libar perfecto ahí está
  • 00:18:28
    ahora sí que vamos a hacer pues
  • 00:18:30
    nuevamente nos hacemos nuestro nuevo
  • 00:18:32
    temporal
  • 00:18:34
    temporal
  • 00:18:36
    ahí están y ahora lo que vamos a hacer
  • 00:18:38
    es ser de hijo derecho se dijo derecho
  • 00:18:41
    recordando que anteriormente en el doble
  • 00:18:43
    izquierdo eran se dijo izquierdo ahora
  • 00:18:45
    es el hijo derecho lo vamos a apuntar a
  • 00:18:47
    rotación izquierda rotación izquierda
  • 00:18:51
    aquí está enviando desde parámetros de
  • 00:18:55
    hijo derecho se de hijo derecho
  • 00:18:57
    ahí está perfecto si te das cuenta es al
  • 00:19:01
    revés volteado como dice un dicho
  • 00:19:02
    mexicano exactamente lo que está acá
  • 00:19:04
    pero de en método inverso digámoslo así
  • 00:19:08
    y después simplemente temporal lo vamos
  • 00:19:11
    a apuntar a rotación derecha y le
  • 00:19:14
    enviamos el parámetro hace y simplemente
  • 00:19:17
    retornamos temporales
  • 00:19:21
    that's ok or white hasta ahí está pues
  • 00:19:24
    hasta que llegamos tenido en el cual
  • 00:19:26
    prácticamente vimos la primera parte de
  • 00:19:28
    lo que es la implementación de el ave l
  • 00:19:31
    en el siguiente vídeo tutorial
  • 00:19:32
    vamos a ver cómo insertar a partir de
  • 00:19:36
    otro método llamado insertar abel y
  • 00:19:38
    lógicamente ya verla
  • 00:19:40
    cappa presentación que es la que tenemos
  • 00:19:42
    desde acá es donde vamos a correr toda
  • 00:19:44
    nuestra aplicación y pues hasta aquí
  • 00:19:46
    dejamos la parte número 1 y nos vemos en
  • 00:19:49
    el que sigue que es la parte número 2
タグ
  • AVL
  • Java
  • estrutura de datos
  • nodo
  • rotación
  • factor de equilibrio