SlideShare una empresa de Scribd logo
1 package abb;
2
3 import java.util.Scanner;
4
5 class Nodo {
6 public int valor;
7 public Nodo izq;
8 public Nodo der;
9
10 public Nodo(int _valor){
11 this.valor = _valor;
12 this.izq = null;
13 this.der = null;
14 }
15 }
16
17 public class ABB {
18
19 Nodo raiz;
20 public ABB(){
21 this.raiz=null;
22 }
23
24 public void Insertar(int _valor){
25 Nodo nuevo = new Nodo(_valor);
26 if(raiz == null)
27 raiz = nuevo;
28 else{
29 Nodo padre=null;
30 Nodo actual = raiz;
31 while(actual != null){
32 padre = actual;
33 if(actual.valor > _valor){
34 actual = actual.izq;
35 }else{
36 actual = actual.der;
37 }
38 }
39 if(padre.valor > _valor)
40 padre.izq = nuevo;
41 else
42 padre.der = nuevo;
43 }
44 }
Árbol Binario de Búsqueda
1.1 of 4 2019.01.08 15:54:58
45
46 public void Preorden(Nodo actual){
47 if(actual != null){
48 System.out.print(actual.valor+" ");
49 Preorden(actual.izq);
50 Preorden(actual.der);
51 }
52 }
53
54 public void Inorden(Nodo actual){
55 if(actual != null){
56 Inorden(actual.izq);
57 System.out.print(actual.valor+" ");
58 Inorden(actual.der);
59 }
60 }
61
62 public void Posorden(Nodo actual){
63 if(actual != null){
64 Posorden(actual.izq);
65 Posorden(actual.der);
66 System.out.print(actual.valor+" ");
67 }
68 }
69
70 public void Reemplazar(Nodo actual){
71 Nodo p = actual;
72 Nodo a = actual.izq;
73 while(a.der != null){
74 p = a;
75 a = a.der;
76 }
77 actual.valor = a.valor;
78 System.out.println(a.valor+" VALOR QUE REEMPLAZA...");
79 if(p==actual)
80 p.izq = a.izq;
81 else
82 p.der = a.izq;
83 }
84
85 public void Eliminar(int elem){
86 Nodo Padre = raiz;
87 Nodo aux = raiz;
88 boolean hijoIzq = true;
Árbol Binario de Búsqueda
2.1 of 4 2019.01.08 15:54:58
89 boolean encontrado = false;
90 while(aux != null){
91 if(aux.valor == elem){
92 encontrado = true;
93 if(aux==raiz){
94 if(raiz.izq==null)
95 raiz = raiz.der;
96 else if(raiz.der==null)
97 raiz = raiz.izq;
98 else
99 Reemplazar(raiz);
100 }else{
101 System.out.println("Encontrado...");
102 if(aux.izq == null){
103 if(hijoIzq)
104 Padre.izq=aux.der;
105 else
106 Padre.der=aux.der;
107 }else if(aux.der == null){
108 if(hijoIzq)
109 Padre.izq=aux.izq;
110 else
111 Padre.der=aux.izq;
112 }else
113 Reemplazar(aux);
114 }
115 aux=null;
116 }else{
117 Padre = aux;
118 if(aux.valor > elem){
119 aux=aux.izq;
120 hijoIzq=true;
121 }else{
122 aux=aux.der;
123 hijoIzq=false;
124 }
125 }
126 }
127 if(!encontrado)
128 System.out.println("El elemento no existe...");
129 }
130
131 public static void main(String[] args) {
132 Scanner leer = new Scanner(System.in);
Árbol Binario de Búsqueda
3.1 of 4 2019.01.08 15:54:58
133 ABB myArbol = new ABB();
134 int op, num, elim;
135 do{
136 System.out.println("Insertar [1] : ");
137 System.out.println("Preorden [2] : ");
138 System.out.println("Inorden [3] : ");
139 System.out.println("Posorden [4] : ");
140 System.out.println("Eliminar [5] : ");
141 System.out.println("Salir [0] : ");
142 op=leer.nextInt();
143 switch (op){
144 case 1: System.out.println("Ingrese elemento ");
145 num = leer.nextInt();
146 myArbol.Insertar(num);
147 break;
148 case 2: myArbol.Preorden(myArbol.raiz);
149 System.out.println("");
150 break;
151 case 3: myArbol.Inorden(myArbol.raiz);
152 System.out.println("");
153 break;
154 case 4: myArbol.Posorden(myArbol.raiz);
155 System.out.println("");
156 break;
157 case 5: System.out.println("Elemento a eliminar? : ");
158 elim = leer.nextInt();
159 myArbol.Eliminar(elim);
160 break;
161 default: break;
162 }
163 }while(op != 0);
164 }
165 }
Árbol Binario de Búsqueda
4.1 of 4 2019.01.08 15:54:58

Más contenido relacionado

La actualidad más candente

Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejerciciostestgrupocomex
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
José Antonio Sandoval Acosta
 
Estructura switch case
Estructura switch caseEstructura switch case
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de Ordenamiento
José Antonio Sandoval Acosta
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
Angel Vázquez Patiño
 
Estructuras no-lineales
Estructuras no-linealesEstructuras no-lineales
Estructuras no-lineales
karlalopezbello
 
Algoritmos de busqueda
Algoritmos de busquedaAlgoritmos de busqueda
Algoritmos de busquedaJohnfornerod
 
Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos
Simeon Bordones
 
Arboles y grafos
Arboles y grafosArboles y grafos
Arboles y grafos
Alexis Chavez
 
Método por plegamiento Hash
Método por plegamiento HashMétodo por plegamiento Hash
Método por plegamiento Hash
Christopher Bonilla Noguera
 
Cuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCristopher Morales Ruiz
 
Cuadro comparativo de metodos de busqueda en ia
Cuadro comparativo de metodos de busqueda en iaCuadro comparativo de metodos de busqueda en ia
Cuadro comparativo de metodos de busqueda en ia
yorlys oropeza
 
Estructuras lineales
Estructuras linealesEstructuras lineales
Estructuras lineales
karlalopezbello
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos
Kaneki04
 
Prolog ejercicios resueltos
Prolog ejercicios resueltosProlog ejercicios resueltos
Prolog ejercicios resueltosJansel M
 
Estructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no linealesEstructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no lineales
José Antonio Sandoval Acosta
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discreta
Junior Soto
 
Estructuras de datos lineales
Estructuras de datos linealesEstructuras de datos lineales
Estructuras de datos lineales
Alvaro Enrique Ruano
 

La actualidad más candente (20)

Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Estructura switch case
Estructura switch caseEstructura switch case
Estructura switch case
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de Ordenamiento
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
Estructuras no-lineales
Estructuras no-linealesEstructuras no-lineales
Estructuras no-lineales
 
Algoritmos de busqueda
Algoritmos de busquedaAlgoritmos de busqueda
Algoritmos de busqueda
 
Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos
 
Arboles y grafos
Arboles y grafosArboles y grafos
Arboles y grafos
 
Método por plegamiento Hash
Método por plegamiento HashMétodo por plegamiento Hash
Método por plegamiento Hash
 
Cuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busqueda
 
Cuadro comparativo de metodos de busqueda en ia
Cuadro comparativo de metodos de busqueda en iaCuadro comparativo de metodos de busqueda en ia
Cuadro comparativo de metodos de busqueda en ia
 
Tipos de Datos Abstractos (TDA)
Tipos de Datos Abstractos (TDA)Tipos de Datos Abstractos (TDA)
Tipos de Datos Abstractos (TDA)
 
Estructuras lineales
Estructuras linealesEstructuras lineales
Estructuras lineales
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos
 
Prolog ejercicios resueltos
Prolog ejercicios resueltosProlog ejercicios resueltos
Prolog ejercicios resueltos
 
Estructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no linealesEstructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no lineales
 
Tablas Hash
Tablas HashTablas Hash
Tablas Hash
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discreta
 
Estructuras de datos lineales
Estructuras de datos linealesEstructuras de datos lineales
Estructuras de datos lineales
 

Más de Franco Guamán

Estructuras de datos grafos
Estructuras de datos grafosEstructuras de datos grafos
Estructuras de datos grafos
Franco Guamán
 
Abb diferencias entre c++ y java
Abb diferencias entre c++ y javaAbb diferencias entre c++ y java
Abb diferencias entre c++ y java
Franco Guamán
 
03 uni1-estructuras de datos-arreglos 2 d
03 uni1-estructuras de datos-arreglos 2 d03 uni1-estructuras de datos-arreglos 2 d
03 uni1-estructuras de datos-arreglos 2 d
Franco Guamán
 
02 uni1-estructuras de datos-arreglos
02 uni1-estructuras de datos-arreglos02 uni1-estructuras de datos-arreglos
02 uni1-estructuras de datos-arreglos
Franco Guamán
 
01 uni1-estructuras de datos-introduccion a las ed
01 uni1-estructuras de datos-introduccion a las ed01 uni1-estructuras de datos-introduccion a las ed
01 uni1-estructuras de datos-introduccion a las ed
Franco Guamán
 
Uni6 a series
Uni6 a seriesUni6 a series
Uni6 a series
Franco Guamán
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modular
Franco Guamán
 
Uni4 estructuras-selectivas
Uni4 estructuras-selectivasUni4 estructuras-selectivas
Uni4 estructuras-selectivas
Franco Guamán
 
Uni5 estructuras-repetitivas
Uni5 estructuras-repetitivasUni5 estructuras-repetitivas
Uni5 estructuras-repetitivas
Franco Guamán
 
Uni3 estructura-general-de-un-programa-cont
Uni3 estructura-general-de-un-programa-contUni3 estructura-general-de-un-programa-cont
Uni3 estructura-general-de-un-programa-cont
Franco Guamán
 
Estructura General de un Programa
Estructura General de un ProgramaEstructura General de un Programa
Estructura General de un Programa
Franco Guamán
 
Fundamentos de Programación. Unidad I
Fundamentos de Programación. Unidad IFundamentos de Programación. Unidad I
Fundamentos de Programación. Unidad I
Franco Guamán
 

Más de Franco Guamán (12)

Estructuras de datos grafos
Estructuras de datos grafosEstructuras de datos grafos
Estructuras de datos grafos
 
Abb diferencias entre c++ y java
Abb diferencias entre c++ y javaAbb diferencias entre c++ y java
Abb diferencias entre c++ y java
 
03 uni1-estructuras de datos-arreglos 2 d
03 uni1-estructuras de datos-arreglos 2 d03 uni1-estructuras de datos-arreglos 2 d
03 uni1-estructuras de datos-arreglos 2 d
 
02 uni1-estructuras de datos-arreglos
02 uni1-estructuras de datos-arreglos02 uni1-estructuras de datos-arreglos
02 uni1-estructuras de datos-arreglos
 
01 uni1-estructuras de datos-introduccion a las ed
01 uni1-estructuras de datos-introduccion a las ed01 uni1-estructuras de datos-introduccion a las ed
01 uni1-estructuras de datos-introduccion a las ed
 
Uni6 a series
Uni6 a seriesUni6 a series
Uni6 a series
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modular
 
Uni4 estructuras-selectivas
Uni4 estructuras-selectivasUni4 estructuras-selectivas
Uni4 estructuras-selectivas
 
Uni5 estructuras-repetitivas
Uni5 estructuras-repetitivasUni5 estructuras-repetitivas
Uni5 estructuras-repetitivas
 
Uni3 estructura-general-de-un-programa-cont
Uni3 estructura-general-de-un-programa-contUni3 estructura-general-de-un-programa-cont
Uni3 estructura-general-de-un-programa-cont
 
Estructura General de un Programa
Estructura General de un ProgramaEstructura General de un Programa
Estructura General de un Programa
 
Fundamentos de Programación. Unidad I
Fundamentos de Programación. Unidad IFundamentos de Programación. Unidad I
Fundamentos de Programación. Unidad I
 

Último

Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Demetrio Ccesa Rayme
 
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezPRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
Ruben53283
 
evalaución de reforzamiento de cuarto de secundaria de la competencia lee
evalaución de reforzamiento de cuarto de secundaria de la competencia leeevalaución de reforzamiento de cuarto de secundaria de la competencia lee
evalaución de reforzamiento de cuarto de secundaria de la competencia lee
MaribelGaitanRamosRa
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
TatianaVanessaAltami
 
El fundamento del gobierno de Dios. El amor
El fundamento del gobierno de Dios. El amorEl fundamento del gobierno de Dios. El amor
El fundamento del gobierno de Dios. El amor
Alejandrino Halire Ccahuana
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
Alejandrino Halire Ccahuana
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
LorenaCovarrubias12
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
YasneidyGonzalez
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
auxsoporte
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
YasneidyGonzalez
 
Colegio Itinerarios Educativos 24-25.pdf
Colegio Itinerarios Educativos 24-25.pdfColegio Itinerarios Educativos 24-25.pdf
Colegio Itinerarios Educativos 24-25.pdf
doescolapiosgetafe
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
danitarb
 
Portafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPNPortafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPN
jmorales40
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
20minutos
 
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
UNIDAD DE APRENDIZAJE DEL MES  Junio 2024UNIDAD DE APRENDIZAJE DEL MES  Junio 2024
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
EdwardYumbato1
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
Martín Ramírez
 
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
FelixCamachoGuzman
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
Alejandrogarciapanta
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
Edurne Navarro Bueno
 
PROYECTO INTEGRADOR ARCHIDUQUE. presentacion
PROYECTO INTEGRADOR ARCHIDUQUE. presentacionPROYECTO INTEGRADOR ARCHIDUQUE. presentacion
PROYECTO INTEGRADOR ARCHIDUQUE. presentacion
yorbravot123
 

Último (20)

Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
 
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezPRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
 
evalaución de reforzamiento de cuarto de secundaria de la competencia lee
evalaución de reforzamiento de cuarto de secundaria de la competencia leeevalaución de reforzamiento de cuarto de secundaria de la competencia lee
evalaución de reforzamiento de cuarto de secundaria de la competencia lee
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
 
El fundamento del gobierno de Dios. El amor
El fundamento del gobierno de Dios. El amorEl fundamento del gobierno de Dios. El amor
El fundamento del gobierno de Dios. El amor
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
 
Colegio Itinerarios Educativos 24-25.pdf
Colegio Itinerarios Educativos 24-25.pdfColegio Itinerarios Educativos 24-25.pdf
Colegio Itinerarios Educativos 24-25.pdf
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
 
Portafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPNPortafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPN
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
 
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
UNIDAD DE APRENDIZAJE DEL MES  Junio 2024UNIDAD DE APRENDIZAJE DEL MES  Junio 2024
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
 
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
 
PROYECTO INTEGRADOR ARCHIDUQUE. presentacion
PROYECTO INTEGRADOR ARCHIDUQUE. presentacionPROYECTO INTEGRADOR ARCHIDUQUE. presentacion
PROYECTO INTEGRADOR ARCHIDUQUE. presentacion
 

Arbol binario de busqueda java

  • 1. 1 package abb; 2 3 import java.util.Scanner; 4 5 class Nodo { 6 public int valor; 7 public Nodo izq; 8 public Nodo der; 9 10 public Nodo(int _valor){ 11 this.valor = _valor; 12 this.izq = null; 13 this.der = null; 14 } 15 } 16 17 public class ABB { 18 19 Nodo raiz; 20 public ABB(){ 21 this.raiz=null; 22 } 23 24 public void Insertar(int _valor){ 25 Nodo nuevo = new Nodo(_valor); 26 if(raiz == null) 27 raiz = nuevo; 28 else{ 29 Nodo padre=null; 30 Nodo actual = raiz; 31 while(actual != null){ 32 padre = actual; 33 if(actual.valor > _valor){ 34 actual = actual.izq; 35 }else{ 36 actual = actual.der; 37 } 38 } 39 if(padre.valor > _valor) 40 padre.izq = nuevo; 41 else 42 padre.der = nuevo; 43 } 44 } Árbol Binario de Búsqueda 1.1 of 4 2019.01.08 15:54:58
  • 2. 45 46 public void Preorden(Nodo actual){ 47 if(actual != null){ 48 System.out.print(actual.valor+" "); 49 Preorden(actual.izq); 50 Preorden(actual.der); 51 } 52 } 53 54 public void Inorden(Nodo actual){ 55 if(actual != null){ 56 Inorden(actual.izq); 57 System.out.print(actual.valor+" "); 58 Inorden(actual.der); 59 } 60 } 61 62 public void Posorden(Nodo actual){ 63 if(actual != null){ 64 Posorden(actual.izq); 65 Posorden(actual.der); 66 System.out.print(actual.valor+" "); 67 } 68 } 69 70 public void Reemplazar(Nodo actual){ 71 Nodo p = actual; 72 Nodo a = actual.izq; 73 while(a.der != null){ 74 p = a; 75 a = a.der; 76 } 77 actual.valor = a.valor; 78 System.out.println(a.valor+" VALOR QUE REEMPLAZA..."); 79 if(p==actual) 80 p.izq = a.izq; 81 else 82 p.der = a.izq; 83 } 84 85 public void Eliminar(int elem){ 86 Nodo Padre = raiz; 87 Nodo aux = raiz; 88 boolean hijoIzq = true; Árbol Binario de Búsqueda 2.1 of 4 2019.01.08 15:54:58
  • 3. 89 boolean encontrado = false; 90 while(aux != null){ 91 if(aux.valor == elem){ 92 encontrado = true; 93 if(aux==raiz){ 94 if(raiz.izq==null) 95 raiz = raiz.der; 96 else if(raiz.der==null) 97 raiz = raiz.izq; 98 else 99 Reemplazar(raiz); 100 }else{ 101 System.out.println("Encontrado..."); 102 if(aux.izq == null){ 103 if(hijoIzq) 104 Padre.izq=aux.der; 105 else 106 Padre.der=aux.der; 107 }else if(aux.der == null){ 108 if(hijoIzq) 109 Padre.izq=aux.izq; 110 else 111 Padre.der=aux.izq; 112 }else 113 Reemplazar(aux); 114 } 115 aux=null; 116 }else{ 117 Padre = aux; 118 if(aux.valor > elem){ 119 aux=aux.izq; 120 hijoIzq=true; 121 }else{ 122 aux=aux.der; 123 hijoIzq=false; 124 } 125 } 126 } 127 if(!encontrado) 128 System.out.println("El elemento no existe..."); 129 } 130 131 public static void main(String[] args) { 132 Scanner leer = new Scanner(System.in); Árbol Binario de Búsqueda 3.1 of 4 2019.01.08 15:54:58
  • 4. 133 ABB myArbol = new ABB(); 134 int op, num, elim; 135 do{ 136 System.out.println("Insertar [1] : "); 137 System.out.println("Preorden [2] : "); 138 System.out.println("Inorden [3] : "); 139 System.out.println("Posorden [4] : "); 140 System.out.println("Eliminar [5] : "); 141 System.out.println("Salir [0] : "); 142 op=leer.nextInt(); 143 switch (op){ 144 case 1: System.out.println("Ingrese elemento "); 145 num = leer.nextInt(); 146 myArbol.Insertar(num); 147 break; 148 case 2: myArbol.Preorden(myArbol.raiz); 149 System.out.println(""); 150 break; 151 case 3: myArbol.Inorden(myArbol.raiz); 152 System.out.println(""); 153 break; 154 case 4: myArbol.Posorden(myArbol.raiz); 155 System.out.println(""); 156 break; 157 case 5: System.out.println("Elemento a eliminar? : "); 158 elim = leer.nextInt(); 159 myArbol.Eliminar(elim); 160 break; 161 default: break; 162 } 163 }while(op != 0); 164 } 165 } Árbol Binario de Búsqueda 4.1 of 4 2019.01.08 15:54:58