0% encontró este documento útil (0 votos)
189 vistas4 páginas

C++ Algoritmo DFS

Este documento describe cómo realizar recorridos de árboles binarios de búsqueda (ABB) en C++. Explica cómo crear nodos, insertar elementos en el árbol, y realizar recorridos en orden, pre-orden y post-orden imprimiendo los valores de los nodos. También muestra cómo crear un ABB, insertar nodos con valores leídos, e imprimir el árbol y los resultados de los diferentes recorridos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
189 vistas4 páginas

C++ Algoritmo DFS

Este documento describe cómo realizar recorridos de árboles binarios de búsqueda (ABB) en C++. Explica cómo crear nodos, insertar elementos en el árbol, y realizar recorridos en orden, pre-orden y post-orden imprimiendo los valores de los nodos. También muestra cómo crear un ABB, insertar nodos con valores leídos, e imprimir el árbol y los resultados de los diferentes recorridos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 4

/*

* C++ - Arboles Binaros de busqueda -Recorridos por amplitud

* Copyright 2014 Martin Cruz Otiniano

* Description: Recorrdos por Orden, Pre-Orden y Post-Orden

* Site: martincruz.me

*/

#include <iostream>

#include <cstdlib>

using namespace std;

struct nodo{

int nro;

struct nodo *izq, *der;

};

typedef struct nodo *ABB;

/* es un puntero de tipo nodo que hemos llamado ABB, que ulitizaremos

para mayor facilidad de creacion de variables */

ABB crearNodo(int x)

ABB nuevoNodo = new(struct nodo);

nuevoNodo->nro = x;

nuevoNodo->izq = NULL;

nuevoNodo->der = NULL;

return nuevoNodo;
}

void insertar(ABB &arbol, int x)

if(arbol==NULL)

arbol = crearNodo(x);

else if(x < arbol->nro)

insertar(arbol->izq, x);

else if(x > arbol->nro)

insertar(arbol->der, x);

void preOrden(ABB arbol)

if(arbol!=NULL)

cout << arbol->nro <<" ";

preOrden(arbol->izq);

preOrden(arbol->der);

void enOrden(ABB arbol)

if(arbol!=NULL)

enOrden(arbol->izq);

cout << arbol->nro << " ";

enOrden(arbol->der);

}
}

void postOrden(ABB arbol)

if(arbol!=NULL)

postOrden(arbol->izq);

postOrden(arbol->der);

cout << arbol->nro << " ";

void verArbol(ABB arbol, int n)

if(arbol==NULL)

return;

verArbol(arbol->der, n+1);

for(int i=0; i<n; i++)

cout<<" ";

cout<< arbol->nro <<endl;

verArbol(arbol->izq, n+1);

int main()

ABB arbol = NULL; // creado Arbol

int n; // numero de nodos del arbol


int x; // elemento a insertar en cada nodo

cout << "\n\t\t ..[ ARBOL BINARIO DE BUSQUEDA ].. \n\n";

cout << " Numero de nodos del arbol: ";

cin >> n;

cout << endl;

for(int i=0; i<n; i++)

cout << " Numero del nodo " << i+1 << ": ";

cin >> x;

insertar( arbol, x);

cout << "\n Mostrando ABB \n\n";

verArbol( arbol, 0);

cout << "\n Recorridos del ABB";

cout << "\n\n En orden : "; enOrden(arbol);

cout << "\n\n Pre Orden : "; preOrden(arbol);

cout << "\n\n Post Orden : "; postOrden(arbol);

cout << endl << endl;

system("pause");

return 0;

También podría gustarte