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

Arbol binario de busqueda java

  • 1.
    1 package abb; 2 3import 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 voidPreorden(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