Está en la página 1de 12

Estructuras de Lenguajes

Juan Pablo Giraldo Rendón


jpgiraldo@gmail.com
jpgiraldo@umanizales.edu.co

Carlos Alberto Loaiza Guerrero


carloaiza0613@hotmail.com
Estructuras Dinámicas: Árboles
• Entregable
• Operaciones de Arboles
• Ejemplos
Operaciones
• IniciarArbol :: --------------------------
Constructor • Insertar
--------------------------- • Consultar
• Izquierda – EnOrden
• Derecha – PreOrden
• Vacio – PosOrden

• Dato • Modificar
• Borrar
Operaciones
• IniciarArbol. Crea y retorna un árbol vacío.
{raiz = null}
• Izquierdo. Retorna el subarbol izquierdo.
{null, NodoArbol.izq}
• Derecho. Retorna el subarbol derecho.
{null, NodoArbol.der}
• Raiz. Retorna el valor almacenado en un nodo.
{“”, vacio, Nodo}
Operaciones
• Peso. Corresponde a determinar la cantidad
de nodos posibles que tiene un árbol.
{0, n}
• Encontrar. Informa si un elemento se
encuentra el árbol.
{falso, verdadero}
• HojasArbol
Operaciones
• Camino. camino de un nodo e1 a un nodo e2:
es una secuencia de nodos e1 , n1 , n2 ... , e2
de tal manera que n( i) es padre de n(i+1 )para
i = 1, 2, . . . , k-1.

Corresponde entonces que existe camino en un


árbol (a) cualquiera, si hay nodos partiendo de
un elemento (e1) y llega a un elemento (e2)
Operaciones
• Camino.
Camino(Arbol Abin, dato e1, dato e2){
si (Abin.vacio())
retornar(False);
Sino Si(e1==Abin.dato())
retornar(Abin.Buscar(e2))
sino
retornar(camino(Abin.izq(),e1,e2) OR
camino(Abin.der(),e1,e2))
}
Operaciones

• Determinar si dos árboles binarios sin


elementos repetidos son semejantes. Este
caso implica dos rutinas:
– Verificar que los arboles tengan el mismo peso
– Garantizar que todos los elementos del primer
árbol están en el segundo
Consideraciones
• Pre : Dos arboles sin elementos repetidos
• Post: Verdadero o falso. árbol 1 semejante al
árbol 2.

Semejantes(ArBin1, ArBin2)
{
retorna((ArBin1.peso() = ArBin2.peso()) AND
Incluido(ArBin1, ArBin2) )
}
Incluido
Incluido(ArBin1, ArBin2)
{
Si(ArBin1.vacio())
retornar(Verdadero)
Sino
retornar( ArBin2.Buscar(ArBin1.dato()) AND
incluido(ArBin1.izq(),ArBin2) AND
incluido(ArBin1.der(),ArBin2)
}
Ejercicios
• Semejantes. Determina si dos arboles binarios
a1, a2 son semejantes. Aunque existan
elementos repetidos. Es decir, si un elemento
aparece k veces en uno de los árboles, debe
aparecer ese mismo número de veces en el
otro árbol.
Ejercicios
• Sea definido un árbol de números enteros.
Determinar si el árbol es estable – Se
considera que un árbol es estable si para
todos los elementos del árbol, su padre es
mayor.
• Determinar si un árbol es completo.
• Determinar la altura del un árbol binario

También podría gustarte