Java - imprimir elementos de un arbol en la una linea

 
Vista:
sin imagen de perfil

imprimir elementos de un arbol en la una linea

Publicado por Diego (6 intervenciones) el 26/04/2016 05:11:12
Hola, me gustaría imprimir los elementos de un arbol binarios en inorden en una sola línea, pero solo me imprime el valor de la raíz me podrían echar una mano con mi código?


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public String inorden(){
	if(this == null){
		return (toString());
	}
	if (left != null){
		if (left == null && right== null){
			return (String) left.val;
		}
		else{
			left.inorden();
		}
	}
 
	else if (right != null){
		if (left == null && right ==null){
			return (String) right.val;
		}
		else{
			right.inorden();
		}
	}
	return (String) val;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

imprimir elementos de un arbol en la una linea

Publicado por arck (145 intervenciones) el 26/04/2016 07:46:41
No es difícil, lo único que tienes que hacer es una función recursiva que primero se llame a si misma con el izquierdo después con el central y después derecho.

Si me puedes poner la estructura del árbol binario que has generado podría pasarte el codigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

imprimir elementos de un arbol en la una linea

Publicado por Diego (6 intervenciones) el 26/04/2016 17:50:37
Hola, esta es la estructura

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Nodo {
	Object val;
	Nodo left;
	Nodo right;
 
	public Nodo(){
		val = null;
		left= null;
		right = null;
	}
 
	public Nodo(Object v, Nodo l, Nodo r){
		this.val = v;
		this.left = i;
		this.right = r;
	}
}

gracias por la respuesta :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imprimir elementos de un arbol en la una linea

Publicado por arck (145 intervenciones) el 28/04/2016 09:38:58
Siento la tardanza.

1.- genera los getters y setters de la clase node y pon los atributos a privado.

2.-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static String imprimirInOrder(Nodo nodo){
 
	if(nodo.getLeft() == null && nodo.getRight() == null){
		return nodo.getVal().toString();
	}
	if(nodo.getLeft() == null){
		return nodo.getVal().toString()+" "+imprimirInOrder(nodo.getRight());
	}
	if(nodo.getRight() == null){
		return imprimirInOrder(nodo.getLeft())+" "+nodo.getVal().toString();
	}
	return null;
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

imprimir elementos de un arbol en la una linea

Publicado por Diego (6 intervenciones) el 22/05/2016 22:50:03
gracias :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar