Professional Documents
Culture Documents
MATERIA: Algoritmos
TTULO DE TRABAJO :
Resumen De Recorrido
Introduccin
A diferencia de las listas enlazadas los rboles no tienen un primer, segundo,
tercer valor, etc. Se dice que el primer nodo de un rbol es la raz pero cul es el
siguiente. Cuando se dice que se recorre un rbol se debe imprimir el valor o
valores de un nodo una y solo una vez.
Recorrido
Comparado
las
estructuras
de
datos
lineales
como
las listas
Recorrido en profundidad-primero
rbol binario
Pre orden: (raz, izquierdo, derecho). Para recorrer un rbol binario no vaco en
pre orden, hay que realizar las siguientes operaciones recursivamente en cada
nodo, comenzando con el nodo de raz:
Visite la raz
Atraviese el sub-rbol izquierdo
Atraviese el sub-rbol derecho
Inorden: (izquierdo, raz, derecho). Para recorrer un rbol binario no vaco en
inorden (simtrico), hay que realizar las siguientes operaciones recursivamente en
cada nodo:
Atraviese el sub-rbol izquierdo
Visite la raz
Atraviese el sub-rbol derecho
Postorden: (izquierdo, derecho, raz). Para recorrer un rbol binario no vaco en
postorden, hay que realizar las siguientes operaciones recursivamente en cada
nodo:
Atraviese el sub-rbol izquierdo
Atraviese el sub-rbol derecho
Visite la raz
En general, la diferencia entre pre orden, inorden y postorden es cundo se
recorre la raz. En los tres, se recorre primero el sub-rbol izquierdo y luego el
derecho.
En pre orden, la raz se recorre antes que los recorridos de los subrboles
izquierdo y derecho
En inorden, la raz se recorre entre los recorridos de los rboles izquierdo y
derecho, y
En postorden, la raz se recorre despus de los recorridos por el subrbol
izquierdo y el derecho
Recorrido en anchura-primero
Los rboles tambin pueden ser recorridos en orden por nivel (de nivel en nivel),
donde visitamos cada nodo en un nivel antes de ir a un nivel inferior. Esto tambin
es llamado recorrido en anchura-primero o recorrido en anchura.
Ejemplo
in-orden
post-orden
push F
queue F
push F B A
pop F
push F B A
dequeue F
pop A
queue B G
push D C
dequeue B
pop C
queue A D
push E
dequeue G
pop E
queue I
pop D
dequeue A
pop B
dequeue D
push G I H
queue C E
pop H
dequeue I
pop I
queue H
pop G
dequeue C
pop F
dequeue E
pop A
push G B
pop B
pop B
push D C
push D A
pop C
pop A
pop D
pop D
push E
push E C
pop E
pop C
pop F
pop E
push G
pop G
pop G
push I
push I H
pop I
pop H
push H
pop I
pop H
dequeue H
Valor
De-lo-contrario
Mientras nodo. Padre null y nodo == nodo padre derecha hacer
Nodo = nodo. Padre
Nodo = nodo. Padre
If (n==NULL)
Return;
Cur = n;
While (Cur!= NULL)
{
If (Cur->lptr == NULL)
{
Printf ("\t%d",Cur->val);
Cur= Cur->rptr;
}
Else
{
Pre = Cur->lptr;
While (Pre->rptr !=NULL && Pre->rptr != Cur)
Pre = Pre->rptr;
If (Pre->rptr == NULL)
{
Pre->rptr = Cur;
Cur = Cur->lptr;
}
Else
{
Pre->rptr = NULL;
Printf ("\t%d",Cur->val);
Cur = Cur->rptr;
}
}
}
}
Usos
Recorrido inorden
Es particularmente comn usar un recorrido inorden en un rbol binario de
bsqueda porque ste retornar valores en el orden del conjunto subyacente, de
Expresin (restante)
Stack
+234
<vaco>
+23
+2
34
234
54
Respuesta
20
Conclusin
En este resumen se estudi una estructura y algunas variantes ms complejas, la
estructura en rbol son fundamentales dentro de la informtica aplicndose en una
extensa variedad de problemas.