Vous êtes sur la page 1sur 7

1

Arboles enraizados

Un rbol enraizado es un rbol en el que marcamos uno de los vrtices como vrtices
distinguido. Dicho vrtice se denomina raz del rbol. Por ejemplo, el rbol de la figura 1
tiene por raz el nodo 7. En los rboles enraizados es ms comn llamar nodos a los
vrtices.
Consideremos un nodo cualquiera v de un rbol enraizado de raz r. Existe un nico
camino entre r y v; cualquier nodo presente en ese camino es un ancestro o antecesor de
v. Si w es un ancestro de v, decimos que v es un descendiente de w. Todo nodo es, por
definicin, ancestro de s mismo; un ancestro de v diferente a l es un ancestro propio. Un
descendiente propio se define de forma anloga. El subrbol con raz en v es el subrbol
inducido por los descendientes de dicho vrtice.




Supongamos que la ltima arista del (nico) camino entre la raz y un nodo v es (w, v). En
ese caso, decimos que w es el padre de v, y que v es hijo de w.
Dos nodos que tienen el mismo padre son hermanos.
Un nodo sin hijos es una hoja o nodo externo; en caso contrario, es un nodo interno.
2

El nmero de hijos de un nodo es su grado. Si todos los nodos de un rbol tienen grado a
lo sumo m, el rbol es m-ario. As, en un rbol ternario cada nodo tiene, a lo sumo, tres
hijos; posiblemente, menos.

Definimos la profundidad de un nodo v como la longitud del camino de la raz a v.
La altura de un rbol es el mximo de las profundidades de sus nodos.
El rbol de la figura 1 tiene altura 3, puesto que los nodos 1 y 2 tienen ambos dicha
profundidad. El subrbol con raz en el nodo 9 tiene altura uno.

Un rbol enraizado en el que los hijos de cada nodo tienen asignado un orden es un rbol
ordenado. Esto significa que si un nodo tiene k hijos, hay un primer, segundo, . . . , k-simo
hijo.
El inters de los rboles reside en su uso como estructuras de datos para clasificar
informacin. Por ejemplo, el rbol de la figura 2 codifica un ndice de una base de datos de
abonados telefnicos. El rbol es ordenado y cuaternario; tiene, adems, la propiedad de
que los datos residentes en una rama son siempre anteriores a los datos que residen en
ramas situadas a su derecha. Esto lo convierte en un rbol de bsqueda.
Para localizar al abonado Dehesa, es suficiente encontrar qu hijo del nodo raz lo
contiene, lo que se determina de inmediato. Prosiguiendo recursivamente de esta forma,
llegamos a encontrar al abonado en un nmero de pasos igual, a lo sumo, a la altura del
rbol de bsqueda.
Cul podra ser esa altura en el caso de tener un milln de abonados?

Teorema: Sea T un rbol m-ario de altura h. Entonces, el nmero de nodos n del rbol
satisface la desigualdad


Arboles binarios

Un rbol binario T es una estructura definida en un conjunto finito de nodos, que, o bien
no contiene nodos, o bien contiene tres conjuntos distintos de nodos: un nodo raz, un
rbol binario llamado el subrbol izquierdo y otro llamado el subrbol derecho.
Observemos que est permitido que un rbol binario sea vaco: se trata del rbol vaco o
rbol nulo. Dado un rbol binario de raz r , si el subrbol izquierdo no es vaco, su raz es
el hijo izquierdo de r ; el hijo derecho de define anlogamente. Es posible, pues, que un
hijo izquierdo o derecho estn ausentes (cuando sea vaco el correspondiente subrbol).
3

Es preciso hacer notar que un rbol binario no es simplemente un rbol ordenado en que
cada nodo tiene a lo sumo dos hijos. En tal caso, no podramos decidir, para un nodo con
un solo hijo, si ste es el izquierdo o el derecho. El rbol binario, pues, proporciona ms
estructura que un simple rbol ordenado. Un nodo puede tener solamente un hijo
izquierdo o solamente un hijo derecho.

Recorridos de grafos

Un recorrido de un grafo es un procedimiento que origina una enumeracin ordenada de
sus vrtices. Comenzaremos nuestro estudio de los recorridos por el caso particular de los
rboles binarios.



Pseudocdigo de los recorridos de un rbol binario

Recorridos de rboles binarios

Recordemos que un rbol binario se define como

un grafo vaco, o bien
un nodo raz ms dos rboles binarios que constituyen el subrbol izquierdo y el
derecho

Esta definicin recursiva es de especial inters cuando recorremos el rbol. Podemos
definir tres maneras de visitar todos y cada uno de los vrtices segn se ve en la figura 3.
Aplicando estos procedimientos al rbol de la figura (a), se obtienen las secuencias que se
muestran en la tabla adjunta (b).
Estos tres tipos de recorrido se relacionan con tres notaciones usuales para las
expresiones algebraicas.

Infija La notacin del lgebra corriente exige que los operadores vayan en medio de sus
dos operandos. Por ejemplo, la expresin

est en notacin infija.
4

Postfija Se obtiene colocando cada operador binario a continuacin de sus operandos.
Al contrario que la infija, no requiere parntesis ni reglas de precedencia para resolucin
de la ambigedad. La expresin anterior, en notacin posfija se convierte en


La notacin postfija (tambin llamada polaca inversa es muy adecuada para su
interpretacin por mquinas, lo que no es de extraar a la luz del ejemplo anterior. Es
muy sencillo escribir un programa que interprete de forma directa expresiones postfijas
empleando una pila como estructura de datos auxiliar.

pretfija Se obtiene colocando los operadores binarios como prefijos de los operandos.
As:








5


Recorridos en anchura y profundidad

Los algoritmos clsicos de teora de grafos se basan en dos procedimientos bsicos de
recorrido denominados recorrido en anchura (breadth-first) y recorrido en profundidad
(depth-first). Aunque admiten muchas formulaciones (por ejemplo, como algoritmos de
bsqueda en rboles), aqu estableceremos su funcionamiento en el caso de grafos no
dirigidos; para otros contextos funcionan exactamente igual con las modificaciones obvias.

Consideremos el grafo de la figura (a) en la cual mostramos adems su representacin por
listas de adyacencia (b). Vamos a enunciar y ejecutar dos algoritmos que producen una
enumeracin ordenada de cada vrtice del rbol. En cada algoritmo, procedemos
visitando cada vrtice y aadiendo sus vecinos a una lista de vrtices pendientes. La visita
de un vrtice consiste en marcarlo como visitado y, si procede, tratar la informacin que
contiene y emitir su nombre o algn otro dato como resultado de la visita. Hecho esto,
seguimos tratando los vrtices que queden pendientes.


6

A grandes rasgos, los algoritmos de recorrido se describen en pseudocdigo en la figura. El
recorrido en profundidad admite una formulacin recursiva muy simple, mientras que el
recorrido en anchura debe formularse en trminos de una cola de vrtices pendientes de
visitar. En la cola, que inicialmente contiene slo el vrtice de partida, los vrtices se
mantienen en orden; se extraen del principio con la operacin SACAPRIMERO y se aaden
al final con la operacin ENCOLA. Los vrtices ya visitados no se introducen en la cola en
dicha operacin.

En la tabla de la figura podemos observar la operacin del algoritmo de recorrido en
anchura. En cada paso, se toma el primer elemento de la cola, que se anota como visitado,
y se examina su lista de adyacencia. Los vecinos que no hayan sido ya visitados se aaden
al final de la cola antes de proceder a la siguiente iteracin.



7

Vous aimerez peut-être aussi