Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Mostrar arbol verticalmente en c++

Estas en el tema de Mostrar arbol verticalmente en c++ en el foro de C/C++ en Foros del Web. Hola amigos Del Foro, Podrian ayudarme con una funcion para mostrar un arbol de forma vertical en c++. por ejm: ingreso N numeros a los ...
  #1 (permalink)  
Antiguo 19/06/2016, 09:01
 
Fecha de Ingreso: noviembre-2015
Mensajes: 9
Antigüedad: 9 años
Puntos: 0
Pregunta Mostrar arbol verticalmente en c++

Hola amigos Del Foro, Podrian ayudarme con una funcion para mostrar un arbol de forma vertical en c++.
por ejm:
ingreso N numeros a los nodos como:
20,15, 30,10,18,35,28
y que se visualize de esta manera

----------------------------20
-----------------------15=====30
--------------------10==18--28==35

Solo encontre maneras de vizualizarlo de forma horizontal

------------35

-----30
------------28
20
------------18
-----15
------------10

pero no es examente lo que busco.

agradesco su ayuda de antemano..!!
  #2 (permalink)  
Antiguo 19/06/2016, 09:34
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 21 años, 3 meses
Puntos: 105
Respuesta: Mostrar arbol verticalmente en c++

Holas,
Que codigo estas usando?,
Saludos,
__________________
.: Gildus :.
  #3 (permalink)  
Antiguo 19/06/2016, 09:50
 
Fecha de Ingreso: noviembre-2015
Mensajes: 9
Antigüedad: 9 años
Puntos: 0
Pregunta Respuesta: Mostrar arbol verticalmente en c++

Hola el codigo es el siguiente lo malo es que se me malogra el menu al mostrar el arbol
Código:
#include <iostream>
#include <windows.h>
#include <cstdio>

#include <conio.h>

using namespace std;
void gotoxy(int x, int y);
struct nodo{
	int dato;
	nodo *izq;
	nodo *der;
};

typedef nodo *arbolb;

void insertar(arbolb &a,int d){
	if(a==NULL){
		a=new (struct nodo);
		a->dato=d;
		a->izq=NULL;
		a->der=NULL;
	}else{
		if(a->dato>d){
			insertar(a->izq,d);
		}else{
			insertar(a->der,d);
		}
	}
}
void mostrar(arbolb a,int x,int y){
if(a!=NULL){
	gotoxy(x,y);
	cout<<a->dato<<endl;
	x=x-3;
	y=y+3;
	mostrar(a->izq,x,y);
	x=x+6;
	mostrar(a->der,x,y);
	y=y-3;
}
}
void gotoxy(int x,int y){
	HANDLE hcon;
	hcon = GetStdHandle(STD_OUTPUT_HANDLE);
	COORD dwPos;
	dwPos.X = x;
	dwPos.Y= y;
	SetConsoleCursorPosition(hcon,dwPos);
}
void menu(){
	cout<<"================================="<<endl;
	cout<<"=        ARBOLES BINARIOS       ="<<endl;
	cout<<"= 1. INSERTAR DATO AL ARBOL     ="<<endl;
	cout<<"= 2. MOSTRAR ARBOL              ="<<endl;
	cout<<"= 3. SALIR                      ="<<endl;
	cout<<"================================="<<endl;
}
int main(){

	arbolb q=NULL;
    int op;
    int n;
    do{
    	menu();
    	cout<<"Ingrese una Opcion"<<endl;
    	    cin>>op;
    switch(op){
    case 1:

    	cout<<"Ingrese El Dato"<<endl;
    	cin>>n;
    	insertar(q,n);
    	cout<<""<<endl;
        break;
    case 2:
    	int x,y;
    	x=40;
    	y=5;
    	mostrar(q,x,y);
        break;
    }
    }while(op!=3);
    system("pause");

}

Etiquetas: arboles, c++
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:19.