Вы находитесь на странице: 1из 2

Facultad de Ingeniera

UNLPam

Estructura de Datos y Algoritmos


2014

PRCTICO 8
rboles
NOTA: El prctico debe contemplar todos los consejos vistos en las unidades anteriores. Todos los integrantes del
grupo debern estar presentes en la entrega del prctico.

EJERCICIO 1: A partir del siguiente rbol, indicar:


1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.

Qu nodo es la raz?
Cuntos caminos diferentes de longitud tres hay?
Es un camino la sucesin de nodos <2,66,4,9>?
Qu nodos son los ancestros de 11?
Qu nodos son los ancestros de 66?
Qu nodos son los descendientes de 4?
Qu nodos son las hojas?
Cul es el hermano a la derecha de 71?
Es 9 hermano a la derecha de 6?
Est 71 a la izquierda de 66?
Est 66 a la derecha de 71?
Qu nodos estn a la izquierda y a la derecha de 7?
Cuntos hijos tiene 9?
Listar los nodos del rbol en preorden, postorden e inorden.

EJERCICIO 2: Definir una funcin que liste los nodos de un rbol en preorden.
a) Implementar como una funcin de aplicacin con el siguiente prototipo:
void listarPreOrden(ArbolBin<tipo> &, nodo<tipo>*);

b) Implementar como una operacin bsica de rboles con el siguiente prototipo:


void ArbolBin<T>::listarPreOrden(nodo<T> *p);

EJERCICIO 3: Definir una funcin que liste los nodos de un rbol en postorden.
a) Implementar como una funcin de aplicacin con el siguiente prototipo:
void listarPostOrden(ArbolBin<tipo> &, nodo<tipo>*);

b) Implementar como una operacin bsica de rboles con el siguiente prototipo:


void ArbolBin<T>::listarPostOrden(nodo<T> *p);

EJERCICIO 4: Definir una funcin que liste los nodos hojas de un arbol.
a) Implementar como una funcin de aplicacin con el siguiente prototipo:
void listarHojas(ArbolBin<tipo> &, nodo<tipo>*);

b) Implementar como una operacin bsica de rboles con el siguiente prototipo:


void ArbolBin<T>::listarHojas(nodo<T> *p);

EJERCICIO 5: Definir una funcin de aplicacin que cargue un ABB (Arbol binario de
bsqueda) con los datos ingresados por teclado. Respetar el siguiente prototipo:
void CargarABB(ArbolBin<tipo> &, nodo<tipo>* &);

EJERCICIO 6: Definir una funcin de aplicacin que realice una bsqueda binaria en un ABB
(Arbol binario de bsqueda) y devuelva si encontr o no el elemento. Respetar el siguiente
prototipo:
bool estaEnABB(ArbolBin<tipo> &, tipo);
Pgina 1

Facultad de Ingeniera
UNLPam

Estructura de Datos y Algoritmos


2014

EJERCICIO 7: Realizar un programa que permita cargar en un rbol una expresin con
parntesis y luego, la resuelva. Una expresin con parntesis es aquella en que:
1. La prioridad se determina slo por parntesis.
2. La expresin completa se sita entre parntesis.
Ejemplo: (1+((2*3)-4))

El algoritmo para la construccin de un rbol de expresin ser


1. La primera vez que se encuentra un parntesis a la izquierda, se crea un nodo
y se lo hace raz. A ste se le llama nodo actual y se sita su puntero en una
pila.
2. Cada vez que se encuentre un nuevo parntesis a la izquierda, crear un nuevo
nodo, hijo del actual (izquierdo si no tiene hijos, o derecho si ya tiene uno
izquierdo). A este nuevo nodo, hacerlo nodo actual y situar su puntero en la
pila.
3. Cuando se encuentra un operando, crear un nuevo nodo hijo del actual, y
asignar el operando a su campo de datos. Si el actual no tiene hijo izquierdo,
hacer este nuevo nodo hijo izquierdo, sino, hacerlo hijo derecho.
4. Cuando se encuentra un operador, sacar un puntero de la pila y situar el
operador en el campo de datos del nodo apuntado por ese puntero.
5. Ignorar, en todos los casos, parntesis derechos y espacios en blanco.

ATENCIN: El prctico se entrega el 15/05/2014.

Pgina 2

Вам также может понравиться