"CÓDIGO DE PROGRAMACIÓN C++"
/*
Universidad Autonama del Estado de Mexico */
/*
Centro Universitario UAEM Atlacomulco */
/*
Author: Juan Carlos Celestino Guillermo */
/*
Grupo: ICO-19 */
/*
Materia: Automatas y lenguajes formales */
/*
Este programa realiza la funcion de crear un arbol binario,
imprime la estructura del arbol, ordena el
recorrido In-orden,
Pre-orden y Post-Orden */
#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <stdio.h>
using namespace std;
void elegir();
void menu();
int opcion;
int main (int argc, char** argv) {
do{
elegir();
switch(opcion){
case
1:
menu();
break;
case
2:
cout
<< "\n\t\t\t ---- SALIR ---- " << endl;
break;
default:
cout << "\n\t\t\t ---- OPCION NO
VALIDA ---- " << endl;
cout << "__________________________________________"
<< endl;
break;
}
}while(opcion !=
2);
return 0;
}
void elegir(){
cout << "\n\t\t
-------------------------------------------";
printf( "\n\t\t| MATERIA: AUTOMATAS Y
LENGUAJES FORMALES. %c|\n" , 169 );
printf( "\t\t| ALUMNO: JUAN CARLOS
CELESTINO GUILLERMO. %c|\n" , 184 );
printf( "\t\t|\t\tGRUPO: ICO-19
\t\t |\n" );
printf( "\t\t|\t\t 2o
SEMESTRE\t\t |\n" );
cout <<
"\t\t -------------------------------------------" << endl;
cout << "\nDESEA CREAR UN
NUEVO ARBOL BINARIO?: " << endl;
cout << "\t 1.- SI.
" << endl;
cout <<
"\t 2.- NO
(SALIR)." << endl;
cout << "\nINTRODUCE EL NUMERO
DE LA OPCION: ";
cin >> opcion;
cout
<<"__________________________________________________________"
<< endl;
return;
}
struct nodo {
int numero;
struct nodo
*izq, *der;
};
typedef
struct nodo *ArbolBinario;
ArbolBinario
crear_Nodo ( int x ) {
ArbolBinario nuevo_Nodo = new ( struct
nodo );
nuevo_Nodo -> numero = x;
nuevo_Nodo -> izq = NULL;
nuevo_Nodo -> der = NULL;
return nuevo_Nodo;
}
void
insertar ( ArbolBinario & arbol, int x ) {
if ( arbol == NULL ){
arbol = crear_Nodo ( x );
}
else if ( x
< arbol -> numero )
insertar ( arbol -> izq, x );
else if ( x > arbol -> numero )
insertar ( arbol -> der, x );
}
void
in_Orden ( ArbolBinario arbol ) {
if ( arbol != NULL ) {
in_Orden ( arbol -> izq );
cout << arbol -> numero
<< ", " ;
in_Orden ( arbol -> der );
}
}
void
pre_Orden ( ArbolBinario arbol ) {
if ( arbol != NULL ) {
cout << arbol -> numero
<<", ";
pre_Orden ( arbol -> izq ) ;
pre_Orden ( arbol -> der ) ;
}
}
void
post_Orden ( ArbolBinario arbol ) {
if ( arbol != NULL ) {
post_Orden ( arbol -> izq );
post_Orden ( arbol -> der );
cout << arbol -> numero
<< ", ";
}
}
void
imprimir_Arbol ( ArbolBinario arbol, int n ) {
if ( arbol == NULL )
return;
imprimir_Arbol
( arbol -> der, n+1 ) ;
for ( int i =
0; i < n; i++)
cout<<"-----";
cout <<
arbol -> numero << endl;
imprimir_Arbol ( arbol -> izq, n+1
) ;
}
void
menu(){
ArbolBinario arbol = NULL;
int n;
int x;
int si, no;
cout << "\n\n\t\t\t >>>>> ARBOL BINARIO
<<<<< \n\n";
cout << "INGRESA EL NUMERO DE
NODOS DEL ARBOL A REALIZAR: ";
cin >> n;
cout <<
endl;
for(int i = 0; i
< n; i++ ){
cout << "INTRODUCE EL NUMERO DEL NODO [ "
<< i+1 << " ]: ";
cin >> x;
insertar( arbol, x );
}
cout << "\n\tESTRUCTURA DEL
ARBOL BINARIO \n\n";
imprimir_Arbol ( arbol, 0 );
cout << "\nRECORRIDOS DEL ARBOL
BINARIO\n";
cout
<< "\nIn-orden: ";
in_Orden ( arbol );
cout << "\nPre-Orden: ";
pre_Orden ( arbol );
cout <<
"\nPost-Orden: ";
post_Orden ( arbol );
cout
<<"\n_________________________________________________________"
<< endl;
return;
}
No hay comentarios.:
Publicar un comentario