SlideShare une entreprise Scribd logo
1  sur  18
UNIVERSIDAD TECNICA
     DEL NORTE
             CARRERA DE INGENIERIA EN
           SISTEMAS COMPUACIONALES

              ESTRUCTURA DE DATOS II




UTN-FICA-CISIC 2012
ÁRBOL ABB
 Un árbol binario de búsqueda es un tipo particular
 de árbol binario que presenta una estructura de datos
 en forma de árbol usada en informática.




  UTN-FICA-CISIC 2012
UTN-FICA-CISIC 2012
OPERACIONES
Todas las operaciones realizadas
 sobre árboles binarios de búsqueda
 están basadas en la comparación
 de los elementos o clave de los
 mismos.


 UTN-FICA-CISIC 2012
BÚSQUEDA
 La búsqueda consiste acceder a la raíz del árbol, si el
  elemento a localizar coincide con éste la búsqueda ha
  concluido con éxito.
 Si el elemento es menor se busca en el subárbol
  izquierdo y si es mayor en el derecho.
 La búsqueda de un elemento en un ABB (Árbol
  Binario de Búsqueda) se puede realizar de dos formas,
  iterativa o recursiva.



   UTN-FICA-CISIC 2012
BÚSQUEDA
 Si se alcanza un nodo hoja y el elemento no ha sido
 encontrado se supone que no existe en el árbol.

                         ELIMINACIÓN
 La operación de borrado no es tan sencilla como las
 de búsqueda e inserción. Existen varios casos a tener
 en consideración.




   UTN-FICA-CISIC 2012
CODIGO EN JAVA METODO
            BUSCAR
 public NodoABB buscar(String r){
    NodoABB a=(NodoABB) raiz.getInfo();
        while(a!=null){
           Persona per=(Persona)a.getInfo();
           if(per.getCedula().equals(r))
            return a;
           else if (per.getCedula().compareTo(r)>0)
              a=a.getIzq();
           else if(per.getCedula().compareTo(r)<0)
              a=a.getDer();
        }
         return null;
    }
 Borrar un nodo sin hijos ó nodo hoja:
 simplemente se borra y se establece a nulo el
 apuntador de su padre.




   UTN-FICA-CISIC 2012
Paso                                                                Eliminar el valor 25
                        21
 1
                                        Nodo Padre
                                  33    localizado
               13

                                                     Paso
       10        18          25        40                      21
                                                      2

                                                          13             33



                                                     10   18                    40
                                                                    25
                                                                              Desconectarlo y
                                                                              liberar el nodo




       UTN-FICA-CISIC 2012
 Borrar un nodo con un subárbol hijo: se borra el
  nodo y se asigna su subárbol hijo como subárbol de su
  padre.
 Eliminar Nodo 70.




   UTN-FICA-CISIC 2012
Paso                    21                                               Eliminar el valor 25
 1
                                             Nodo Padre
                                   33        localizado
               13

                                                          Paso
       10        18           25        40                          21
                                                           2

                                   29                          13          33
                                                                    25
                         27             30                                      40
                                                          10   18
                                                                    29
                                                                                Conectar el Nodo
                                                                                Padre con el Nodo
                                                               27          30   Hijo y liberar el
                                                                                nodo.
       UTN-FICA-CISIC 2012
Eliminar nodo con dos hijos
1.          Localizar el nodo predecesor o sucesor del
            nodo a borrar.
                El PREDECESOR es “el Mayor de los Menores”.
                El SUCESOR es “el Menor de los Mayores”.
                Para la implementación es igual de eficiente
                 programar la búsqueda del predecesor que del
                 sucesor.
2.          El valor del Predecedor (o sucesor) se copia
            al nodo a borrar.
3.          Eliminar el nodo del predecesor (o sucesor
            según sea el caso).

UTN-FICA-CISIC 2012
Eliminar el valor 21
                                                                       utilizando el predecesor
Paso                           Localizar el valor a       Paso         21
 1                 21          borrar                      2

                                                                 13              33
          13                 33


                                                           10                         40
                                     40                           18        25
  10         18         25
                                                                        Localizar el Predecesor


                             Copiar el valor del          Paso
Paso                         Predecesor al nodo que        4           18
 3                18         contenía el valor a borrar

                                                                 13              33

        13                   33

                                                            10              25        40
                                                                  18
 10       18                       40
                       25                                                Desconectar y liberar el
       UTN-FICA-CISIC 2012                                               nodo del Predecesor
Eliminar el valor 21
                                                                       utilizando el Sucesor
Paso                           Localizar el valor a       Paso         21
 1                 21          borrar                      2

                                                                 13              33
          13                 33


                                                           10                            40
                                     40                           18        25
  10         18         25
                                                                                      Localizar el Sucesor


                             Copiar el valor del          Paso
Paso                         Sucesor al nodo que           4           18
 3                25         contenía el valor a borrar

                                                                 13              33

        13                   33

                                                            10    18        25           40
 10       18                       40
                       25                                                             Desconectar y liberar el
                                                                                      nodo del Sucesor
       UTN-FICA-CISIC 2012
   public boolean Borrar(String dato)
      {
         NodoABB aux2 = null;
         NodoABB aux = (buscar(dato));

        if (buscar(dato) != null)// SI ES NODO HOJA
        {
           if ((aux.getIzq() == null) && (aux.getDer() == null))
           {
              aux = null;
           }
           else
           {
              if (aux.getIzq() != null && aux.getDer() != null)//SI TIENE 2 HIJOS
              {
                 if (aux == raiz)//Si es el nodo raiz con 2 hijos
                 {
                    aux2 = aux.getIzq();
                    aux = aux.getDer();

                 while (aux.getIzq() != null)
                 {
                   aux = aux.getIzq();//Recorre por la izquierda
                 }
                 aux.setIzq(aux2);
               }
               else
               {

   //Si es otro nodo con 2 hijos

                       aux2 = aux.getIzq();
                       aux = aux.getDer();

                       while (aux.getIzq() != null)
                       {
                         aux = aux.getIzq();// recorre por la Izquierda
                       }
                       aux.setIzq(aux2);
                 }
              }
              else
              {
                 if (aux == raiz) //SI EL NODO A BORRAR ES RAIZ Y TIENE UN SOLO HIJO
                 {

                     if (aux.getIzq() != null)//Si el nodo es raiz y tiene 1 solo hijo por la Izquierda
                     {

                       aux = aux.getIzq();
                     }
                     else
                     {
                        aux = aux.getDer(); //Si el nodo es raiz y tiene 1 solo hijo por la Derecha
   }
                   }
                   else
                   {
                      if (aux.getIzq() != null) //Si es otro nodo y tiene 1 solo hijo por la Izquierda
                      {

                         aux = aux.getIzq();
                       }
                       else
                       {
                          aux = aux.getDer();//Si es otro nodo y tiene 1 solo hijo por la Izquierda
                       }
                   }
               }
             }
             return true;//Cuando pudo ser encontrado el nodo a eliminar
           }
           return false; //Cuando no pudo ser encontrado el nodo a eliminar
       }
GRACIAS

UTN-FICA-CISIC 2012

Contenu connexe

Tendances

Normalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fnNormalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fn
Luis Jherry
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
Blanca Parra
 
Unidad 4 est. dat. recursividad
Unidad 4  est. dat. recursividadUnidad 4  est. dat. recursividad
Unidad 4 est. dat. recursividad
rehoscript
 

Tendances (20)

Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
 
Programación 3: árboles de búsqueda equilibrados
Programación 3: árboles de búsqueda equilibradosProgramación 3: árboles de búsqueda equilibrados
Programación 3: árboles de búsqueda equilibrados
 
Creación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbenchCreación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbench
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamiento
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 
Normalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fnNormalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fn
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
 
Ordenamiento parte 2
Ordenamiento parte 2Ordenamiento parte 2
Ordenamiento parte 2
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
 
Unidad 4 est. dat. recursividad
Unidad 4  est. dat. recursividadUnidad 4  est. dat. recursividad
Unidad 4 est. dat. recursividad
 
Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4
 
Programación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosProgramación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenados
 
Ejercicios resueltos de programacion
Ejercicios resueltos de programacionEjercicios resueltos de programacion
Ejercicios resueltos de programacion
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos
 
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
 
2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata
 

Plus de Stalin Eduardo Tusa Vitar

Plus de Stalin Eduardo Tusa Vitar (20)

Sistemas Quipux, Axis Cloud, Webmail
Sistemas Quipux, Axis Cloud, WebmailSistemas Quipux, Axis Cloud, Webmail
Sistemas Quipux, Axis Cloud, Webmail
 
Cambio de Paradigmas de Seguridad en Smarphones
Cambio de Paradigmas de Seguridad en SmarphonesCambio de Paradigmas de Seguridad en Smarphones
Cambio de Paradigmas de Seguridad en Smarphones
 
Primera_Aplicación_Python_Django_Postgresql_Fedora_19
Primera_Aplicación_Python_Django_Postgresql_Fedora_19Primera_Aplicación_Python_Django_Postgresql_Fedora_19
Primera_Aplicación_Python_Django_Postgresql_Fedora_19
 
Software Libre para SIG (Sistemas de Informacion Geográfica)
Software Libre para SIG (Sistemas de Informacion Geográfica)Software Libre para SIG (Sistemas de Informacion Geográfica)
Software Libre para SIG (Sistemas de Informacion Geográfica)
 
Esx, vcenter, vclient, vmotion, freenas
Esx, vcenter, vclient, vmotion, freenas Esx, vcenter, vclient, vmotion, freenas
Esx, vcenter, vclient, vmotion, freenas
 
Data Center y Virtualización - Infraestructura
Data Center y Virtualización - InfraestructuraData Center y Virtualización - Infraestructura
Data Center y Virtualización - Infraestructura
 
Manual Jboss Server,Creación de Proyecto en Eclipse
Manual Jboss Server,Creación de Proyecto en EclipseManual Jboss Server,Creación de Proyecto en Eclipse
Manual Jboss Server,Creación de Proyecto en Eclipse
 
Toma de decisiones
Toma de decisionesToma de decisiones
Toma de decisiones
 
Sistemas de Almacenamiento Compartido
Sistemas de Almacenamiento CompartidoSistemas de Almacenamiento Compartido
Sistemas de Almacenamiento Compartido
 
RMI_Concepto_Elementos_Funciones_Ventajas_Desventajas
RMI_Concepto_Elementos_Funciones_Ventajas_DesventajasRMI_Concepto_Elementos_Funciones_Ventajas_Desventajas
RMI_Concepto_Elementos_Funciones_Ventajas_Desventajas
 
Ventas al mayoreo y distribución física
Ventas al mayoreo y distribución físicaVentas al mayoreo y distribución física
Ventas al mayoreo y distribución física
 
Terrorismo informático
Terrorismo informáticoTerrorismo informático
Terrorismo informático
 
Seguridad en el trabajo
Seguridad en el trabajoSeguridad en el trabajo
Seguridad en el trabajo
 
Manejo de prtg network monitor
Manejo de prtg network monitorManejo de prtg network monitor
Manejo de prtg network monitor
 
Prtg network monitor
Prtg network monitorPrtg network monitor
Prtg network monitor
 
Diseño de interfaz de usuario
Diseño de interfaz de usuarioDiseño de interfaz de usuario
Diseño de interfaz de usuario
 
Reorganizacion de una base de datos
Reorganizacion de una base de datosReorganizacion de una base de datos
Reorganizacion de una base de datos
 
Replicacion en SQLserver2008r2
Replicacion en  SQLserver2008r2Replicacion en  SQLserver2008r2
Replicacion en SQLserver2008r2
 
Ingenieria de Software (Openup)
Ingenieria de Software (Openup)Ingenieria de Software (Openup)
Ingenieria de Software (Openup)
 
Caracteristicas de dbms_SQL SERVER 2008
Caracteristicas de dbms_SQL SERVER 2008Caracteristicas de dbms_SQL SERVER 2008
Caracteristicas de dbms_SQL SERVER 2008
 

Dernier

PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
lupitavic
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
MiNeyi1
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 

Dernier (20)

Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSSEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 

Inserción,borrado y búsqueda en Arboles Binarios(Java)

  • 1. UNIVERSIDAD TECNICA DEL NORTE CARRERA DE INGENIERIA EN SISTEMAS COMPUACIONALES ESTRUCTURA DE DATOS II UTN-FICA-CISIC 2012
  • 2. ÁRBOL ABB  Un árbol binario de búsqueda es un tipo particular de árbol binario que presenta una estructura de datos en forma de árbol usada en informática. UTN-FICA-CISIC 2012
  • 4. OPERACIONES Todas las operaciones realizadas sobre árboles binarios de búsqueda están basadas en la comparación de los elementos o clave de los mismos. UTN-FICA-CISIC 2012
  • 5. BÚSQUEDA  La búsqueda consiste acceder a la raíz del árbol, si el elemento a localizar coincide con éste la búsqueda ha concluido con éxito.  Si el elemento es menor se busca en el subárbol izquierdo y si es mayor en el derecho.  La búsqueda de un elemento en un ABB (Árbol Binario de Búsqueda) se puede realizar de dos formas, iterativa o recursiva. UTN-FICA-CISIC 2012
  • 6. BÚSQUEDA  Si se alcanza un nodo hoja y el elemento no ha sido encontrado se supone que no existe en el árbol. ELIMINACIÓN  La operación de borrado no es tan sencilla como las de búsqueda e inserción. Existen varios casos a tener en consideración. UTN-FICA-CISIC 2012
  • 7. CODIGO EN JAVA METODO BUSCAR  public NodoABB buscar(String r){  NodoABB a=(NodoABB) raiz.getInfo();  while(a!=null){  Persona per=(Persona)a.getInfo();  if(per.getCedula().equals(r))  return a;  else if (per.getCedula().compareTo(r)>0)  a=a.getIzq();  else if(per.getCedula().compareTo(r)<0)  a=a.getDer();  }  return null;  }
  • 8.  Borrar un nodo sin hijos ó nodo hoja:  simplemente se borra y se establece a nulo el apuntador de su padre. UTN-FICA-CISIC 2012
  • 9. Paso Eliminar el valor 25 21 1 Nodo Padre 33 localizado 13 Paso 10 18 25 40 21 2 13 33 10 18 40 25 Desconectarlo y liberar el nodo UTN-FICA-CISIC 2012
  • 10.  Borrar un nodo con un subárbol hijo: se borra el nodo y se asigna su subárbol hijo como subárbol de su padre.  Eliminar Nodo 70. UTN-FICA-CISIC 2012
  • 11. Paso 21 Eliminar el valor 25 1 Nodo Padre 33 localizado 13 Paso 10 18 25 40 21 2 29 13 33 25 27 30 40 10 18 29 Conectar el Nodo Padre con el Nodo 27 30 Hijo y liberar el nodo. UTN-FICA-CISIC 2012
  • 12. Eliminar nodo con dos hijos 1. Localizar el nodo predecesor o sucesor del nodo a borrar.  El PREDECESOR es “el Mayor de los Menores”.  El SUCESOR es “el Menor de los Mayores”.  Para la implementación es igual de eficiente programar la búsqueda del predecesor que del sucesor. 2. El valor del Predecedor (o sucesor) se copia al nodo a borrar. 3. Eliminar el nodo del predecesor (o sucesor según sea el caso). UTN-FICA-CISIC 2012
  • 13. Eliminar el valor 21 utilizando el predecesor Paso Localizar el valor a Paso 21 1 21 borrar 2 13 33 13 33 10 40 40 18 25 10 18 25 Localizar el Predecesor Copiar el valor del Paso Paso Predecesor al nodo que 4 18 3 18 contenía el valor a borrar 13 33 13 33 10 25 40 18 10 18 40 25 Desconectar y liberar el UTN-FICA-CISIC 2012 nodo del Predecesor
  • 14. Eliminar el valor 21 utilizando el Sucesor Paso Localizar el valor a Paso 21 1 21 borrar 2 13 33 13 33 10 40 40 18 25 10 18 25 Localizar el Sucesor Copiar el valor del Paso Paso Sucesor al nodo que 4 18 3 25 contenía el valor a borrar 13 33 13 33 10 18 25 40 10 18 40 25 Desconectar y liberar el nodo del Sucesor UTN-FICA-CISIC 2012
  • 15. public boolean Borrar(String dato)  {  NodoABB aux2 = null;  NodoABB aux = (buscar(dato));  if (buscar(dato) != null)// SI ES NODO HOJA  {  if ((aux.getIzq() == null) && (aux.getDer() == null))  {  aux = null;  }  else  {  if (aux.getIzq() != null && aux.getDer() != null)//SI TIENE 2 HIJOS  {  if (aux == raiz)//Si es el nodo raiz con 2 hijos  {  aux2 = aux.getIzq();  aux = aux.getDer();  while (aux.getIzq() != null)  {  aux = aux.getIzq();//Recorre por la izquierda  }  aux.setIzq(aux2);  }  else  { 
  • 16. //Si es otro nodo con 2 hijos  aux2 = aux.getIzq();  aux = aux.getDer();  while (aux.getIzq() != null)  {  aux = aux.getIzq();// recorre por la Izquierda  }  aux.setIzq(aux2);  }  }  else  {  if (aux == raiz) //SI EL NODO A BORRAR ES RAIZ Y TIENE UN SOLO HIJO  {  if (aux.getIzq() != null)//Si el nodo es raiz y tiene 1 solo hijo por la Izquierda  {  aux = aux.getIzq();  }  else  {  aux = aux.getDer(); //Si el nodo es raiz y tiene 1 solo hijo por la Derecha
  • 17. }  }  else  {  if (aux.getIzq() != null) //Si es otro nodo y tiene 1 solo hijo por la Izquierda  {  aux = aux.getIzq();  }  else  {  aux = aux.getDer();//Si es otro nodo y tiene 1 solo hijo por la Izquierda  }  }  }  }  return true;//Cuando pudo ser encontrado el nodo a eliminar  }  return false; //Cuando no pudo ser encontrado el nodo a eliminar  }