#1 Ayuda con mi arbol binario
Holas, quisiera saber porque no me funciona este arbol que comence hacer, recien empiezo con C++ y no se porque no ejecuta mi programa. De antemano se agradece su ayuda...
#include <iostream>
using namespace std;
typedef struct nodo BT;
struct nodo
{
int dato;
BT *izq;
BT *der;
BT *raiz;
};
void insertar(BT *root, int n){
BT *nuevo, *actual, *anterior;
nuevo = (BT *) malloc(sizeof(BT));
nuevo->dato=n;
if(root->raiz==NULL){
nuevo->izq=nuevo->der=NULL;
root->raiz=nuevo;
return;
}
actual=root->raiz;
anterior=NULL;
while(actual!=NULL){
anterior=actual;
if(n>actual->dato){
actual=actual->der;
}
else
{
actual=actual->izq;
}
}
if(n>anterior->dato && anterior!=NULL){
anterior->der=nuevo;
}
else{
anterior->izq=nuevo;
}
}
void inorder(BT *root){
if(root!=NULL){
inorder(root->izq);
cout<<root->dato<<endl;
inorder(root->der);
}
}
main(){
BT *arbol=new BT();
insertar(arbol,3);
insertar(arbol,5);
insertar(arbol,1);
insertar(arbol,7);
inorder(arbol);
}
#include <iostream>
using namespace std;
typedef struct nodo BT;
struct nodo
{
int dato;
BT *izq;
BT *der;
BT *raiz;
};
void insertar(BT *root, int n){
BT *nuevo, *actual, *anterior;
nuevo = (BT *) malloc(sizeof(BT));
nuevo->dato=n;
if(root->raiz==NULL){
nuevo->izq=nuevo->der=NULL;
root->raiz=nuevo;
return;
}
actual=root->raiz;
anterior=NULL;
while(actual!=NULL){
anterior=actual;
if(n>actual->dato){
actual=actual->der;
}
else
{
actual=actual->izq;
}
}
if(n>anterior->dato && anterior!=NULL){
anterior->der=nuevo;
}
else{
anterior->izq=nuevo;
}
}
void inorder(BT *root){
if(root!=NULL){
inorder(root->izq);
cout<<root->dato<<endl;
inorder(root->der);
}
}
main(){
BT *arbol=new BT();
insertar(arbol,3);
insertar(arbol,5);
insertar(arbol,1);
insertar(arbol,7);
inorder(arbol);
}
0