Mostrando entradas con la etiqueta arboles binarios. Mostrar todas las entradas
Mostrando entradas con la etiqueta arboles binarios. Mostrar todas las entradas

martes, 16 de julio de 2013

Arbol Binario en C++

Hola amigos esta vez les mostrare un arbol binario con los recorrios in-orden, post-orden y pre-orden.

Captura:



Codigo:

Arbol.cpp


#include<iostream>
#include"arbol.h"
using namespace std;

void arbol::insertar(tarbol &aux,int v){
 if(aux==NULL){
  aux=new nodo(v);
 }
 else{
  if(v<aux->dato){
   insertar(aux->izquierda,v);
  }
  else{
   if(v>aux->dato){
    insertar(aux->derecha,v);
   }
  }
 }
}

void arbol::ind(tarbol aux){
 if(aux!=NULL){
  ind(aux->izquierda);
  cout<<" num :  "<<aux->dato<<endl;
  ind(aux->derecha);
 } 
 
}

void arbol::nid(tarbol aux){
 if(aux!=NULL){
  cout<<" num :  "<<aux->dato<<endl;
  nid(aux->izquierda);
  nid(aux->derecha);
 }

}
void arbol::idn(tarbol aux){
 if(aux!=NULL){
  idn(aux->izquierda);
  idn(aux->derecha);
  cout<<" num :  "<<aux->dato<<endl;
 }
}

int main(){
 arbol a;
 cout<<"Datos: 5,4,2,6,7"<<endl<<endl;
 a.insertar(a.miarbol,5);
 a.insertar(a.miarbol,4);
 a.insertar(a.miarbol,2);
 a.insertar(a.miarbol,6);
 a.insertar(a.miarbol,7);
 cout<<"Inorden"<<endl<<endl;
 a.ind(a.miarbol);
 cout<<endl<<endl;
 cout<<"Postorden"<<endl;
 a.idn(a.miarbol);
 cout<<endl<<endl;
 cout<<"Preorden"<<endl;
 a.nid(a.miarbol);
 cout<<endl<<endl;fflush(stdin);
 system("pause");
 return 0;
}

Arbol.h


class nodo{
public: 
 int dato;
  nodo *izquierda;
  nodo *derecha;
  nodo(int v,nodo *iz=NULL,nodo *de=NULL){
   dato=v;
   izquierda=iz;
   derecha=de;
  }
class arbol;
};
typedef nodo *tarbol;

class arbol{
public:
 tarbol miarbol;
 arbol(){
  miarbol=NULL;
 }
 void arbol::insertar(tarbol &aux, int v);
 void ind(tarbol aux);
 void nid(tarbol aux);
 void idn(tarbol aux);
};



Descarga el codigo desde aqui.