#include #include #include using namespace std; struct Nodo { int dato; Nodo *der; Nodo *izq; Nodo *padre; }; void menu(); Nodo *crearnodo(int, Nodo *); void insertarnodo(Nodo *&arbol, int, Nodo *); void imprimirarbol(Nodo *, int); bool busqueda (Nodo *arbol, int n); void recorrer_preorden(Nodo *arbol); void recorrer_inorden(Nodo *arbol); void recorrer_posorden(Nodo *arbol); int main() { menu(); getch(); return 0; } void menu(){ Nodo *arbol=NULL; int dato, op, cont=0,b,p=1, p1=1; do{ system("cls"); cout<<"\n M E N U"<>op; switch(op){ case 1: cout<<"\n Digite el valor"; cin>>dato; insertarnodo(arbol, dato,NULL); getch(); break; case 2: cout<<"Imprimir arbol"<>b; if(busqueda(arbol,b)==true){ cout<<"Elemento encontrado"; } else cout<<"Elemento no encontrado"<dato=n; nuevo_nodo->der=NULL; nuevo_nodo->izq=NULL; nuevo_nodo->padre=padre; return nuevo_nodo; } //insertar nodo del arbol void insertarnodo(Nodo *&arbol, int n, Nodo *padre){ if(arbol==NULL){ Nodo *nuevo_nodo=crearnodo(n, padre); arbol=nuevo_nodo; } else{ int valor_raiz=arbol->dato; if(n< valor_raiz){ insertarnodo(arbol->izq,n,arbol); }else{ insertarnodo(arbol->der,n,arbol); } } } void imprimirarbol(Nodo *arbol, int numero) { if(arbol==NULL){ return; }else{ imprimirarbol(arbol->der, numero+3); for(int i=0;idato<izq,numero+3); } } bool busqueda (Nodo *arbol, int n){ if(arbol==NULL){ return false; } else if(arbol->dato==n){ return true; } else if(ndato){ return busqueda(arbol->izq,n); } else{ return busqueda(arbol->der,n); } } void recorrer_preorden(Nodo *arbol){ if(arbol==NULL){ return; } else{ cout<dato<<"---"; recorrer_preorden(arbol->izq); recorrer_preorden(arbol->der); } } void recorrer_inorden(Nodo *arbol){ if(arbol==NULL){ return; } else{ recorrer_inorden(arbol->izq); cout<dato<<"---"; recorrer_inorden(arbol->der); } } void recorrer_posorden(Nodo *arbol){ if(arbol==NULL){ return; } else{ recorrer_posorden(arbol->izq); recorrer_posorden(arbol->der); cout<dato<<"---"; } }