public class TadArbolBinario {
int dato;
TadArbolBinario izq;
TadArbolBinario der;
Nodo raiz;
TadArbolBinario p;
public TadArbolBinario() {
this.dato = 0;
this.izq = null;
this.der = null;
raiz = null;
}
public boolean EstaVacio() {
if (this.dato == 0 && this.izq == null && this.der == null) {
return true;
}
return false;
}
public void InsertarNodo(int dato) {
if (this.EstaVacio()) {
this.dato = dato;
this.izq = new TadArbolBinario();
this.der = new TadArbolBinario();
} else {
if (dato < this.dato) {
this.izq.InsertarNodo(dato);
} else {
this.der.InsertarNodo(dato);
}
}
}
void Inorden(TadArbolBinario raiz) {
if (!raiz.EstaVacio()) {
Inorden(raiz.izq);
System.out.println(raiz.dato);
Inorden(raiz.der);
}
}
void Postorden(TadArbolBinario raiz) {
if (!raiz.EstaVacio()) {
Postorden(raiz.izq);
Postorden(raiz.der);
System.out.println(raiz.dato);
}
}
void PreOrden(TadArbolBinario raiz) {
if (!raiz.EstaVacio()) {
System.out.println(raiz.dato);
PreOrden(raiz.izq);
PreOrden(raiz.der);
}
}
void MostrarArbol(TadArbolBinario raiz) {
if (raiz != null) {
MostrarArbol(raiz.izq);
System.out.println(raiz.dato);
MostrarArbol(raiz.der);
}
}
boolean Vacio(TadArbolBinario arbol) {
if (arbol == null) {
return true;
}
return false;
}
TadArbolBinario BuscarNodo(TadArbolBinario arbol, int dato) {
if (Vacio(arbol)) {
return null;
}
if (arbol.dato < dato) {
if (Vacio(arbol.der)) {
System.out.println("El número no está en el árbol " + dato);
}
BuscarNodo(arbol.der, dato);
} else if (arbol.dato > dato) {
if (Vacio(arbol.izq)) {
System.out.println("El número no está en el árbol " + dato);
} else {
BuscarNodo(arbol.izq, dato);
}
}
if (arbol.dato == dato) {
System.out.println("El número está en el árbol " + dato);
}
return null;
}
void alturaArbol (TadArbolBinario raiz, int altura){
altura=0;
AlturaArbol(raiz, 0, altura);
}
int Hoja(TadArbolBinario raiz){
if( !raiz.der && !raiz.izq){
return 1;
}else{
return 0;
}
}
void AlturaArbol (TadArbolBinario raiz, int dato, int altura){
if(raiz.izq){
AlturaArbol(raiz.izq, dato+1, altura);
}
if(raiz.der){
AlturaArbol(raiz.der, dato+1, altura);
}
if(Hoja(raiz) && dato>altura){
altura=dato;
}
}
Can you help me with this? I declared those two methods that I mentioned in the title and I get an error in the if and I don't understand why.
The conditions of a
if
must return a result of typeboolean
, and several of yoursif
do not. For exampleif(raiz.izq)
, it returns an object of typeTadArbolBinario
. I understand that you are trying to check if itraiz.izq
has value, right? In that case you should change toif (raiz.izq!=null)
.The same happens in others
if
that you have, such asif(raiz.der)