# data[].attributes.body
Recorrido de Amplitud:

Recorre los niveles, del superior al inferior.

# data[].attributes.body
Recorrido en preorden
* Visita la raiz.
* Recorrer sub-árbol izquierdo
*Recorrer sub-árbol derecho

# data[].attributes.body
postorden: en este recorrido primero se recorre la parte izquierda del árbol, luego la parte derecha y al final la raíz

# data[].attributes.body
// avanza en toda la rama izquierda y cuando llega al final empieza a imprimir
void Arbol::inorden(struct Nodo *nodo) {

if (nodo != NULL) {

// vamos a la izquierda

inorden(nodo->izquierda);

// imprime

printf("%d ,", nodo->dato);

// vamos a la derecha

inorden(nodo->derecha);

}

}

# data[].attributes.body
En el in-orden el raíz está en el medio del recorrido, en el pre-orden el raíz está primero y en el post-orden el raíz está el último.

Recorrido pre-orden:

Visitar el raíz.
Recorrer el subárbol izquierdo en pre-orden.
Recorrer el subárbol derecho en pre-orden.

Recorrido en-orden:

Recorrer el subárbol izquierdo en in-orden.
Visitar el raíz.
Recorrer el subárbol derecho en in-orden.

Recorrido post-orden:

Recorrer el subárbol izquierdo en post-orden.
Recorrer el subárbol derecho en post-orden.
Visitar el raíz.

# data[].attributes.body
El recorrido enorden primero recorre los nodos del lado izquiero, luego la raiz y por ultimo los nodos de lado derecho

# data[].attributes.body
inorden se ordena de tal manera que se imprime la info del último nodo hasta el fondo que haya del lado izq (de la raiz recibida) y se va regresado buscando conforme a la prioridad (Prioridad Izq Raiz Der)
En inorden ordena los números del menor al mayor.

//Recibimos por referencia a la raiz
void claseArbol::inorden(nodo raiz){
    //Si la raiz no apunta a nulo (es decir mientras no este vacía)
    if(raiz != NULL){
        //llamamos recursivamente hacia el lado izq para que busque desde aqui conforme a la prioridad
        inorden(raiz->izq);
        //Imprimimos el dato y un guion medio para separar
        std::cout<<raiz->dato<<" - ";
        //llamamos recursivamente hacia el lado der para que busque desde aqui conforme a la prioridad
        inorden(raiz->der);
    }
}

# data[].attributes.body
RECORRIDO EN Preorden
Se caracteriza por visitar primero la raíz en cada paso recursivo

Visitar el Nodo raiz

Recorrer en preorden el subárbol izquierdo

Recorrer en preorden el subárvol derecho.

# data[].attributes.body
INORDEN

Recorrer un árbol en Inorden  consiste en primer lugar en recorrer el subárbol izquierdo en Inorden, luego se examina el dato del nodo raíz, y finalmente  se recorre el subárbol derecho en  Inorden. Esto significa que para cada subárbol se debe conservar el recorrido en Inorden, es decir, primero se visita la parte izquierda, luego la raíz y posteriormente la parte derecha

# data[].attributes.body
El recorrido en preorden inicia desde el nodo raíz y visita los nodos del subarbol izquierdo y posterior el subarbol derecho

# data[].attributes.body
Recorrido en Postorden
Primero se recorre el subárbol izquierdo
Segundo se recorre el subárbol dercho
Por ultimo , se visita la raíz
hijo izquierdo - hijo derecho - raíz

# data[].attributes.body
Recorrido por niveles:

Empieza en el nivel cero, y visita los nodos de izquierda a derecha en cada nivel en un orden descendente.

# data[].attributes.body
Recorrido Pre Orden.
Se visita primero el padre, después el hijo izquierdo y después el hijo derecho.

void PreOrden(ABB arbol)
{
if (arbol != NULL)
{
cout<<arbol->info<<" ";
PreOrden(arbol->izq);
PreOrden(arbol->der);
}
}

# data[].attributes.body
Hay tres formas Preorden,  inorden y Postorden.
por ejemplo en recorrido en Inorden :
se recorre en primer lugar el hijo de la izquierda, luego la raíz y luego cada uno de los hijos de la derecha.

# data[].attributes.body
Este recorrido consiste en recorrer el árbol con un orden especifico: Raíz, subárbol izquierdo, subárbol derecho.

# data[].attributes.body
Post-orden
La raíz se recorre después de los recorridos por el subárbol izquierdo y el derecho.

*Recorrer el subárbol izquierdo
*Recorrer el subarbol derecho
*Visitar la raiz

# data[].attributes.body
Recorrido en inorden:
Se comienza con el nodo que está más a la izquierda, y se continua con los nodos que están antes de el, después se llega a la raíz, y posteriormente se sigue con todos los nodos que están a la derecha de la raiz

# data[].attributes.body
En el recorrido de preorden el recorrido comienza analizando la raíz, posteriormente el subárbol izquierdo y después el subárbol derecho

void preorden(arbol){
if(arbol!=NULL){
preorden(arbol->izquierdo);
preorden(arbol->derecho);
}
}

# data[].attributes.body
IDV: PostOrden
I: Recorrer el subárbol Izquierdo de un nodo
D: Recorrer el subárbol derecho de un nodo
V: Visitar un nodo
void postOrden(Nodo*& arbol)
{
if (arbol != NULL)
{
postOrden(arbol->izquierdo);
postOrden(arbol->derecho);
cout << arbol->dato << " -";
}
}

# data[].attributes.body
Preorden

En un recorrido en preorden, visitamos primero el nodo raíz, luego recursivamente realizamos un recorrido en preorden del subárbol izquierdo, seguido de un recorrido recursivo en preorden del subárbol derecho.

# data[].attributes.body
En el orden postorden se recorre de la siguiente manera: subárbol izquierdo, subárbol derecho, raíz.
void postOrden(ABB arbol)
if(arbol!=NULL)
{
postOrden(arbol->izq);
postOrden(arbol->der);
cout << arbol->nro << " ";
}
}

# data[].attributes.body
Recorrido en post orden:
Empieza en luna hoja del lado izquierdo y va subiendo imprimiendo primero el numero menor y despues el mayor, y vuelve a subir, hasta que se encuentre con la raiz empieza ahora del lado derecho en la ultima hoja, sube denuevo y imprime por ultimo la raiz

# data[].attributes.body
Preorden: se recorre de la siguiente manera: raíz, subárbol izquierdo, subárbol derecho.

RECORRIDO:12,2,4,5,6,11,18,19,15
CREO

# data[].attributes.body
void Arbol::preorden(struct Nodo *nodo) {

if (nodo != NULL) {

// imprime

printf("%d ,", nodo->dato);

// vamos a la izquierda

preorden(nodo->izquierda);

// vamos a la derecha

preorden(nodo->derecha);

}

}

# data[].attributes.body
12,4,2,6,5,11,15,19,18

# data[].attributes.body
PreOrden
12 - 4 - 2 - 6 - 5 - 11 - 15 - 19 - 18

# data[].attributes.body
PostOrden
2 - 5 - 11 - 6 - 4 - 18 - 19 - 15 - 12

# data[].attributes.body
2, 5, 11, 6, 4, 18, 19, 15, 12

# data[].attributes.body
12, 4, 2,6,5,11,15,19,18

# data[].attributes.body
PREORDEN
12,4,2,6,5,11,18,19,15

# data[].attributes.body
Preorden
12,4,2,6,5,11,15,19,18

# data[].attributes.body
12
4
2
6
5
11
15
19
18

# data[].attributes.body
Postorden
2,5,11,6,4,18,19,15,12

# data[].attributes.body
PreOrden:

12 4 2 6 5 11 15 19 18

# data[].attributes.body
12, 4, 2, 6, 5, 11, 15,19, 18

# data[].attributes.body
Pre-orden: 12, 4, 2, 6, 5, 11, 15, 19, 18

# data[].attributes.body
12,4,2,6,5,11,15,19,18

# data[].attributes.body
12, 4, 2, 6, 5, 11, 15, 19, 18

# data[].attributes.body
12 4 2 6 5 11 15 19 18

# data[].attributes.body
12,4,2,6,5,11,15,1918

# data[].attributes.body
PostOrden
2 5 11 6 4 18 19 15 12

# data[].attributes.body
12,4,2,6,5,11,15,19,18

# data[].attributes.body
12,4,2,6,5,11,15,19,18

# data[].attributes.body
Postorden: se recorre de la siguiente manera: subárbol izquierdo, subárbol derecho, raíz.

Recorrido:2,5,11,6,4,18,19,15,12

# data[].attributes.body
12, 4, 2, 6, 5, 11, 15, 19, 18

# data[].attributes.body
12 - 4 - 2 - 6 - 5 - 11 - 15 - 19 - 18

# data[].attributes.body
2 5 11 6 4 18 19 15 12

# data[].attributes.body
2
5
11
6
4
18
19
15
12

# data[].attributes.body
Post: 2,5,11,6,4,18,15,12

# data[].attributes.body
Postorden: 5, 11, 6, 2, 4, 18, 19, 15, 12

# data[].attributes.body
2,5,11,6,4,18,19,15,12

# data[].attributes.body
2 5 11 6 4 18 19 15 12

# data[].attributes.body
2 - 5 - 11 - 6 - 4 - 18 - 19 - 15 - 12

# data[].attributes.body
12,4,2,6,5,11,15,19, 18

# data[].attributes.body
2-5-11-6-4-18-19-15-12

# data[].attributes.body
2,5,11,6,4,18,19,15,12

# data[].attributes.body
2,5,11,6,4,18,19,15, 12

# data[].attributes.body
Post-Orden
2 5 11 6 4 18 19 15 12

# data[].attributes.body
12, 4, 2, 6, 5, 11, 15, 19, 18

# data[].attributes.body
2,5,11,6,4,18,19,15,12

# data[].attributes.body
2,5,11,6,4,18,19,15,12

# data[].attributes.body
2, 5, 11, 6, 4, 18, 19, 15, 12