




Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Examen Recuperación Junio
Tipo: Exámenes
1 / 8
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!





2
2
2
3
3
3
4
4
k
k
T n =
1, n= 1
T n = 2 k T
n
2
log 2 n
PROCEDURE CrearABinBusqVacio ( VAR arbol: TipoABinBusq); (* POST: Construye un arbol binario de búsqueda sin elementos *)
PROCEDURE ConstruirABinBusq (ai: TipoABinBusq; r: TipoElemento; ad: TipoABinBusq; VAR arbol: TipoABinBusq); (PRE: NO EsABinBusqVacio (ai) Y NO EsABinBusqVacio(ad) Y Maximo(ai)<e<Minimo(ad))) (*POST: Construye árbol bin. de búsq. a partir de izdo y dcho y de un nodo raiz *)
FUNCTION Raiz (arbol: TipoABinBusq): TipoElemento; (* PRE: NOT EsArbolBinVacio (arbol) ) ( POST: Nodo raiz de arbol *)
FUNCTION HijoIzq (arbol: TipoABinBusq): TipoABinBusq; (* PRE: NOT EsArbolBinVacio (arbol) ) ( POST: Subárbol hijo izquierdo de arbol ) FUNCTION HijoDer (arbol: TipoABinBusq) : TipoABinBusq; ( PRE: NOT EsArbolBinVacio (arbol) ) ( POST: Subárbol hijo derecho de arbol *)
FUNCTION EsABinBusqVacio (arbol: TipoABinBusq): BOOLEAN ; (* POST: Devuelve TRUE si arbol no tiene elementos y FALSE si los tiene. *)
PROCEDURE Insertar (e: TipoElemento; VAR arbol: TipoABinBusq); (* POST: Devuelve un árbol binario de búsqueda que contiene los elementos originales más un nuevo nodo: el que corresponde al elemento e*)
PROCEDURE Eliminar(e: TipoElemento; VAR arbol: TipoABinBusq); (* POST: Devuelve el árbol binario de búsqueda con los mismos elementos excepto el elemento e, cuyo nodo es eliminado *)
FUNCTION Pertenece (e: TipoElemento; arbol: TipoABinBusq): BOOLEAN ; (* POST: Devuelve TRUE si e está en el árbol y FALSE en caso contrario *)
FUNCTION Maximo(arbol: TipoABinBusq): TipoElemento; (PRE: NOT EsABinBusqVacio(arbol))
FUNCTION Minimo(arbol: TipoABinBusq): TipoElemento; (PRE: NOT EsABinBusqVacio(arbol))
FUNCTION Buscar(e: TipoElemento; arbol: TipoABinBusq): TipoABinBusq; (* POST: Devuelve el subárbol cuya raíz es el nodo buscado si se encuentra, y NIL si no se encuentra*)
Ahora ya sabemos que Misterio2 es la operación EsPrefijo:
FUNCTION EsPrefijo(l1, l2: TipoLista): Boolean ; VAR aux1, aux2: TipoLista; iguales: Boolean ;
IF l1 = NIL THEN EsPrefijo := TRUE ELSE IF l2 = NIL THEN EsPrefijo := FALSE { Si l1 no es la lista vacía y l2 es vacía, entonces l1 no es prefijo} ELSE BEGIN aux1 := l1; aux2 := l2; iguales := TRUE; { l1 y l2 son <> NIL cuando llegamos aquí por las condiciones anteriores } WHILE (aux2 <> NIL) AND (aux1 <> NIL) AND iguales DO BEGIN iguales := (aux1^.elemento = aux2^.elemento); aux2 := aux2^.siguiente; aux1 := aux1^.siguiente; END { Es prefijo si se acabó la lista 1 y todos los elementos eran iguales hasta ese punto} EsPrefijo := iguales AND (aux1 = NIL); END ; END ;
(* PRE: "La cola no está llena" ) ( POST: "Construye una cola, con elemento como ultimo" *)
(* POST: resultado = "Decide si una cola es o no vacia" *)
(* POST: resultado = (cola.cola = cola2.cola) *)
(* PRE: NOT EsColaVacia(cola) ) ( POST: resultado = "Primer elemento de una cola *)
(* PRE: NOT EsColaVacia(cola)) ( POST: "Devuelve la cola resultante de eliminar su primer elemento *)
(* POST: "Copia de cola en la estructura de cola2" *)