elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  mostrar un arbol binario con pilas en inorden
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: mostrar un arbol binario con pilas en inorden  (Leído 1,800 veces)
Diego_Capera

Desconectado Desconectado

Mensajes: 2


Ver Perfil
mostrar un arbol binario con pilas en inorden
« en: 19 Noviembre 2016, 01:06 am »

Hola me podrían hacer el favor de explicarme como mostrar un árbol binario mediante el uso de pilas en inorden, de forma recursiva ya lo se mostrar pero mediante pilas no, gracias.

#include <iostream>
using namespace std;
class Arbol{
   int dato;
   Arbol *izq;
   Arbol *der;
public:
   void crearRaiz(Arbol *&,int);
   void insIzq(Arbol *&,int);
   void insDer(Arbol *&,int);   
   void crearArbol(Arbol *&);
   void inordenR(Arbol *);
   void mostrar(Arbol *);
};

void Arbol::crearRaiz(Arbol *&raiz,int d){
   raiz=new Arbol;
   raiz->dato=d;
   raiz->izq=raiz->der=NULL;
}

void Arbol::insIzq(Arbol *&aux,int d){
   Arbol *nuevo=new Arbol;
   nuevo->dato=d;
   nuevo->izq=nuevo->der=NULL;
   aux->izq=nuevo;   
}

void Arbol::insDer(Arbol *&aux,int d){
   Arbol *nuevo=new Arbol;
   nuevo->dato=d;
   nuevo->izq=nuevo->der=NULL;
   aux->der=nuevo;   
}

void Arbol::crearArbol(Arbol *&raiz){
   int d=66;
   Arbol *aux1,*aux2;
   while(d>0){
             cout<<"Dato= "<<endl;
             cin>>d;
             if(d>0){
                      if(!raiz)
                      crearRaiz(raiz,d);
                      else{
                            aux1=aux2=raiz;
                            while(aux2&&aux1->dato!=d){
                                                         aux1=aux2;
                                                         if(d<aux1->dato)
                                                         aux2=aux2->izq;
                                                         else
                                                         aux2=aux2->der;
                                             }
                           if(d==aux1->dato)
                           cout<<"Dato repetido"<<endl;
                           else{
                              if(d<aux1->dato)
                              insIzq(aux1,d);
                              else
                              insDer(aux1,d);
                     }
                    }
                   }            
   }   
}
void Arbol::inordenR(Arbol *aux){
   if(aux){   
   inordenR(aux->izq);
   cout<<aux->dato<<endl;
   inordenR(aux->der);}
}

int main(){
   Arbol *raiz=NULL,obj1;
   obj1.crearArbol(raiz);
   obj1.inordenR(raiz);

}


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Altura de arbol binario
Java
l337* 4 36,559 Último mensaje 5 Diciembre 2009, 13:08 pm
por imnohacker
Arbol binario Ejemplo
.NET (C#, VB.NET, ASP)
S1dD3xt35 0 7,471 Último mensaje 21 Abril 2010, 07:18 am
por S1dD3xt35
arbol binario
Programación C/C++
karmi 2 4,161 Último mensaje 14 Diciembre 2010, 22:08 pm
por ANTÓN RAMIREZ
exception en arbol binario
Java
m@o_614 1 1,989 Último mensaje 22 Noviembre 2014, 21:46 pm
por DarK_FirefoX
Compilacion - Arbol Binario
.NET (C#, VB.NET, ASP)
Castiel 0 2,179 Último mensaje 18 Febrero 2015, 06:36 am
por Castiel
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines