Академический Документы
Профессиональный Документы
Культура Документы
Departamento de Computación.
8-10-2019
Algoritmo y
estructuras de datos
Pilas
UNAN-MANAGUA
Llamadas a subprogramas
Grafico
1
Grafico
Recursividad e Iteración
Las soluciones recursivas suelen ser bastante cortas pero cubren mucho más
espacio en la memoria del ordenador, este es el principal inconveniente de las
soluciones recursivas (Castillo, 2011).
2
Grafico
Además es considerada una técnica muy potente que puede ser usada en lugar de
una iteración (bucles o ciclos), ello implica una forma diferente de ver las acciones
repetitivas permitiendo que un subprograma se llame para resolver una operación
más pequeña del programa original (Castillo, 2011).
3
Evaluación de expresiones postfijas
4
2. Cuando se llega al final de la entrada, se vacía la pila P sobre la salida.
Ejemplo: Entrada = a + b * c + (d * e + f) * g
En el siguiente ejemplo el tope de la pila es el elemento más a la izquierda.
5
Algoritmo conversión infija postfija (infija, postfija) es
6
precedencia(c, prec1);
precedencia(tope, prec2);
mientras prec2 >= prec1 AND not resp hacer
pop(P, top);
Escribir_f (post, top);
vacía? (P, resp);
si resp = falso entonces
tope(P, top);
predecendia(top, prec2);
finsi
fin mientras;
finsi;
push (P, c); {Meto en la pila el operador que había leído}
fin según;
finsi
Fin_f (inf, eof);
fin mientras;
Cerrar_f (inf); {Se ha terminado la entrada} {Resta vaciar la pila de operadores}
vacía? (P, resp);
mientras not resp hacer
pop(P, top);
Escribir_f (post, top);
vacía? (P, resp);
fin mientras;
Cerrar_f(post);
FIN
7
Conversión de notación infija a prefija.
8
Incrementamos el contador a la segunda posición
9
Almacenamos los operadores +,*,+
en el arreglo
Como ya hemos realizado todo el recorrido y tenemos elementos en la pila, los
vamos a vaciar
10
Validación de una expresión aritmética
El ‘rectángulo’ que indica que en ese punto hay un elemento del vocabulario que es
no-terminal, es decir que tendrá otro diagrama de Conway para definirle.
El ‘círculo’ para indicar que en ese punto hay un símbolo terminal, es decir que es
un elemento perteneciente al vocabulario para la formación de expresiones
aritméticas.
11
Identif. : los identificadores se utilizarán para designar las variables
que aparezcan en la expresión aritmética. Un identificador se formará
empezando siempre por una letra seguida de 0 o más letras o dígitos
numéricos.
Constante: una constante es, simplemente, un número real (notación
IEEE 754-1985) compuesto por una parte entera, una parte decimal y
una parte exponencial.
Función: se refiere a funciones matemáticas de un único parámetro.
Las incluidas en este caso son:
Sqrt : calcula la raíz cuadrada de un número (positivo).
Exp : eleva el número e a un número.
Log : calcula el logaritmo neperiano de un número.
12
Ejemplo de validación de una expresión aritmética
8 + (a3 * 5)
Término -> Factor -> Constante (8) -> (+) -> Término -> Factor -> (() -> Expresión -
> ()) -> Fin
Término -> Factor -> Identif. (a3) -> (*) -> Factor -> Constante (5)
2. (-(-(-(-(-8)))))
13
Bibliografía
https://www.academia.edu/25511949/UNIVERSIDAD_ESTATAL_DE_GUAYAQUIL_FACU
LTAD_DE_CIENCIAS_MATEM%C3%81TICAS_Y_F%C3%8DSICAS_INGENIERIA_EN_SI
STEMAS_COMPUTACIONALES_ESTRUCTURA_DE_DATOS_INVESTIGACION_APLICA
CIONES_DE_PILAS_Y_COLAS_ESTUDIANTE?auto=download
https://www.infor.uva.es/~belar/Ampliacion/TDAS/Utilidades_TDA_PILA.pdf
https://runestone.academy/runestone/static/pythoned/Recursion/MarcosDePilaImplementac
ionDeLaRecursividad.html
https://thales.cica.es/rd/Recursos/rd99/ed99-0636-03/expresion_arit.html
14