Ir al contenido principal

Programación en c++: Arbol (BB) - preorden, postorden, enorden





#include <iostream.h>
#include <conio.h>
struct nodo{int valor;
     struct nodo *izq;
            struct nodo *der;
            };
typedef struct nodo *ABB;
void inserta(ABB &,int);
void preorden(ABB);
void postorden(ABB);
void enorden(ABB);
void verArbol(ABB,int);

void main(void)
{ABB arbol=NULL;
 int n,x,des;
 cout<<"Cantidad de elementos del arbol: ";
 cin>>n;
 for(int i=0;i<n;i++)
  {cout<<"Ingrese nodo numero"<<i<<": ";
   cin>>x;
   inserta(arbol,x);
  }
 verArbol(arbol,0);
 cout<<endl<<"Preorden: "; preorden(arbol);
 cout<<endl<<"postorden: "; postorden(arbol);
 cout<<endl<<"Enorden: "; enorden(arbol);
 getch();
}

void inserta(ABB &arbol,int x)
{if(arbol==NULL)
  {arbol=new(struct nodo);
       arbol->valor=x;
       arbol->izq=NULL;
       arbol->der=NULL;
      }
 else if(x<arbol->valor)inserta(arbol->izq,x);
   else if(x>arbol->valor)inserta(arbol->der,x);
} //si es igual no se inserta
void preorden(ABB arbol)
{if(arbol!=NULL)
 {cout<<arbol->valor<<" ";
  preorden(arbol->izq);
  preorden(arbol->der);
 }
}
void enorden(ABB arbol)
{if(arbol!=NULL)
  {enorden(arbol->izq);
   cout<<arbol->valor<<" ";
   enorden(arbol->der);
  }
}
void postorden(ABB arbol)
{if(arbol!=NULL)
 {postorden(arbol->izq);
  postorden(arbol->der);
  cout<<arbol->valor<<" ";
 }
}
void verArbol(ABB arbol,int nro)
{int i;
 if(arbol==NULL)return;
 verArbol(arbol->der,nro+1);
 for(i=0;i<nro;i++)cout<<" ";
 cout<<arbol->valor<<endl;
 verArbol(arbol->izq,nro+1);
}

Comentarios

Entradas más populares de este blog

Lenguaje de Programacion en Java: Ecuación de primer grado

public class Main {     public static void main(String[] args) {         float x,a,e;                   Scanner teclado = new Scanner(System.in);         System.out.println("Coeficiente de X:");         x=teclado.nextInt();         System.out.println("Término independiente:");         a=teclado.nextInt();         if(a==0)           System.out.println("No es una ecuación de primer grado");           else         {              e=-a/x;              System.out.println("La raíz es=" +e);         }                                     } ...

Programacion: Arbol binario - Programacion en c++

1.- Hacer un programa que permita buscar un elemento, el elemento mayor, el elemento menor y el menor de los mayores de un árbol binario. #include <iostream.h> #include <conio.h> struct nodo     {      int valor;      struct nodo* izq;      struct nodo* der;     }; typedef struct nodo *ABB; void inserta(ABB& ,int); void preorden(ABB); void postorden(ABB); void enorden(ABB); void verarbol(ABB,int); int buscar(ABB,int); int buscarmayor(ABB); int buscarmenor(ABB); void podar(ABB&,int); void main() { ABB arbol=NULL; ABB subarbol=NULL; int n,x,opc,a;   do     {      cout<<"menu principal"<<endl;      cout<<"1.ingresar elementos"<<endl;      cout<<"2.pre orden"<<endl;      cout<<"3.mostrar hojas"<...

Programación en c++ : Matriz - Calcular mayor de la matriz

1.- Hacer un programa que permita ingresar n datos de una matriz y calcular el mayor de la matriz. #include<iostream.h> #include<conio.h> #define lim 50 void main() {int i,j,a[lim][lim],fila,col,  may=a[0][0];  clrscr(); do {cout<<"Ingresar limite de la fila:";  cin>>fila; }while(fila<=0); do {cout<<"Ingesar limite de la columna:";  cin>>col; }while(col<=0); gotoxy(10,7); cout<<"Ingresar Elementos de la matriz\n\n"; for(i=0;i<fila;i++) for(j=0;j<col;j++) {cout<<"a["<<i<<"]"<<"["<<j<<"]";  cin>>a[i][j]; } for(i=0;i<fila;i++) for(j=0;j<col;j++) if(a[i][j]>may) may=a[i][j]; clrscr(); gotoxy(10,7); cout<<"Elementos de la matriz\n\n"; for(i=0;i<fila;i++) for(j=0;j<col;j++) {cout<<a[i][j];  cout<<"\n"; } clrscr(); gotoxy(10,20); cout...