Estructura de datos
Supongamos que tenemos tres subprogramas, llamados A, B, C, y supongamos también que A invoca a B, y B invoca a C. Entonces B no terminará su trabajo hasta que Chaya terminado y devuelto su control a B. De modo similar, A es el primero que arranca su ejecución, pero es el último que la termina, tras la terminación y retorno de B.
Esta operación se consiguedisponiendo las direcciones de retorno en una pila.
Programa
Principal
Subprograma A Z
Subprograma B Y
Subprograma C X
Pila de direcciones deretorno
Pilas de tratamiento de expresiones aritméticas.
Conjunto de operadores, variables y paréntesis. Ejemplo:
• A+B
• Esta forma de escribir las expresiones: NOTACION INFIJA• El operador siempre va en medio de los operandos
En una expresión, las operaciones se “ejecutan” en un cierto orden
A+B*C no es igual que (A+B)*C
Cada operador tiene su nivel deprecedencia, recordemos:
• Paréntesis : () Mayor prioridad
• Potencia : ^
• Multiplicación/división: *,/
• Suma/Resta : +,-* Menor Prioridad
Las expresiones aritméticas generalmentese escriben en notación infija, es decir operando operador operando Por ejemplo: 2 + 7 ; 16 / 4 ; 2 * 3 etc
Pilas de ordenamiento
Seleccionar un valor de división (L por ejemplo) y dividir elmontón en dos pilas, A-L y M-Z. Después se toma la primera pila y se subdivide en dos, A-F y G-L por ejemplo. A su vez la pila A-F puede subdividirse en A-C y D-F. Este proceso continúa hasta que laspilas sean suficientemente pequeñas para ordenarlas fácilmente. El mismo proceso se aplica a la otra pila.
Pilas de recursividad
4!= 4*3*2*1=24
FUNCION FACTORIAL(N)
1. - Si N0
2. -N-factorial=1
3. - Si no
4. - N.factorial=N*Nfactorial(N-1)
1. - 4 No es cero por ello saltamos a la cláusula
4. - La primera llamada recursiva nos devuelve al comienzo de la función con N=2
1. -...
Regístrate para leer el documento completo.