[Examen][Dic][2009]

[Examen][Dic][2009]

de Andres Sebastian Bentos Gomez -
Número de respuestas: 2
2.b) Defina una función que dado un árbol binario de tipo AB retorne TRUE si el árbol cumple la propiedad de
orden de un Heap. Asumimos que un Heap puede contener elementos repetidos.
No se permite usar TADs en este ejercicio.
Considerando de mayor prioridad al entero más grande.
Solución propuesta:
PROCEDURE esHeap (t: AB): BOOLEAN;
BEGIN
IF (t = NIL) THEN
RETURN TRUE
ELSIF (t^.left = NIL) THEN
IF (t^.right = NIL)
RETURN TRUE
ELSE RETURN((t^.info <= t^.right^.info) AND esHeap (t^.right))
ELSIF (t^.right = NIL)
RETURN ((t^.info <= t^.left^.info) AND esHeap (t^.left))
ELSE RETURN ((t^.info <= t^.right^.info) AND
(t^.info <= t^.left^.info) AND
esHeap (t^.right) AND esHeap (t^.left))
END
END esHeap;

Yo encontré un caso que no es Heap y si me da como resultado que si
¿alguién también esta con este problema?
En respuesta a Andres Sebastian Bentos Gomez

Re: [Examen][Dic][2009]

de Yasim Zeballos Rodríguez - INCO -
Hola Andrés,
¿podrías poner el ejemplo que encontraste?.

Ojo que el nombre de la función puede confundir. Tal vez no debería de haberse llamado "esHeap" sino "cumplePropiedadOrdenHeap". Ya que no tiene que ser un heap sino, cumplir su propiedad de orden.