Arbol Binario De Busqueda
Publicado por fernando (6 intervenciones) el 20/04/2018 02:54:32
Hola la idea es que ingreso palabras a un arbol binario, y si la palabra ya esta en el arbol tiene que sumar +1
Por ejemplo si quiero agregar este
string = "aaa!ccc aaa ccc.aaa,ggg:ccc!ccc(ddd)eee¡eee!eee¿eee?fff fff fff eee eee fff fff bbb ggg";
String[] split = texto.split("[. , ' ' ( ) ¡ ! ¿ ? ' :]+");
Queda el arreglo perfecto y suma palabras repetidas en los caso de "a", "b", 'c", "d", pero en "e" me agrega como un nodo mas en el arbol
Codigo nodo:
Este es el metodo Agregar
Por ejemplo si quiero agregar este
string = "aaa!ccc aaa ccc.aaa,ggg:ccc!ccc(ddd)eee¡eee!eee¿eee?fff fff fff eee eee fff fff bbb ggg";
String[] split = texto.split("[. , ' ' ( ) ¡ ! ¿ ? ' :]+");
Queda el arreglo perfecto y suma palabras repetidas en los caso de "a", "b", 'c", "d", pero en "e" me agrega como un nodo mas en el arbol
Codigo nodo:
1
2
3
4
5
6
7
8
9
10
// ESTE ES EL NODO
public class NodoArbol {
public String palabra;
public int palabrasRepetidas;
public NodoArbol izqNodoArbol;
public NodoArbol derNodoArbol;
.....
}
Este es el metodo Agregar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
private void AgregarRecursivo(NodoArbol nuevo, NodoArbol laRaiz) {
if (Buscar(nuevo, this.raiz)) { // esto es lo importante
//aca esta el resto del codigo para agregar
}
private boolean Buscar(NodoArbol nuevo, NodoArbol raiz) {
if (raiz == null) {
return false;
}
//la palabra esta en el arbol
if (raiz.palabra.equals(nuevo.palabra)) {
++raiz.palabrasRepetidas;
return true;
} else {
if (raiz.palabra.compareTo(nuevo.palabra) > 0) {
return Buscar(nuevo, raiz.izqNodoArbol);
} else{
return Buscar(nuevo, raiz.derNodoArbol);
}
}
}
Valora esta pregunta


0