Hola miren estoy buscando la manera de mostrar el contenido de un arbol binario de busqueda de forma muy grafica por pantalla es decir de esta manera
RAIZ
12 33
6 15 51
14 19
Tengo estos metodos pero a la hora de imprimir por pantalla se me superpone el mensaje
"Presione una tecla para continuar...." y no me gusta
void mostrar(pnodo arbol, int Y)
{
if(arbol!=NULL){
X+=5;
mostrar(arbol->izq,Y+2);
gotoxy(10+X-Y,15+Y);
cout<<arbol->dato<<endl;
mostrar(arbol->der,Y+2);
}
}
void gotoxy(int x, int y)
{
HANDLE hcon;
hcon=GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos;
pos.X=x;
pos.Y=y;
SetConsoleCursorPosition(hcon,pos);
}
Desde ya muchas gracias ;-)
Antes de que aparezca el mensaje mueve el cursor de la pantalla donde quieras. No sé si va a funcionar. Inténtalo.
Si pero no me lo muestra en un lugar fijo :(
Bueno, en tu código no hay ninguna llamada a system("pause")
Estas compilando desde el IDE? Si es así, por eso te aparece el mensaje de Presione un tecla...
Pero si lo ejecutas desde la terminal no aparecerá.
Y una recomendación:
if(arbol == NULL){
return;
}
X += 5;
mostrar(arbol-> izq, Y + 2);
gotoxy(10 + X - Y, 15 + Y);
cout << arbol -> dato << endl;
mostrar(arbol -> der, Y + 2);
No aglutines los operadores con lo demás, hace que el código sea mas difícil de leer, y se ve feo...
Saludos
y respondiendo eso de que el mensaje ese no se queda en un lugar fijo es por que el mensaje se imprime en el ultimo lugar dónde posicionaste el cursor con gotoxy