Sintaxis y Semántica del Lenguaje Práctica 4 - UTN

Anuncio
Sintaxis y Semántica del Lenguaje
Práctica 4
Esta práctica deberá resolverse en la semana del 02/05/13
1) Implementar una solución recursiva para los siguientes casos:
a) Sumar los elementos de un vector.
b) Buscar el máximo elemento de un vector.
c) Determinar la cantidad de nodos de una lista simple.
d) Recuperar el contenido del i-ésimo elemento de una lista encadenada de enteros.
Suponer que i > 1 y que la lista contiene al menos i nodos.
e) Calcular el promedio de los elementos de una lista circular.
2) Escribir una función recursiva para cada uno de los siguientes casos. Suponiendo que la
misma recibe como parámetro una lista de dígitos que van del 1 al 9.
a) La función debe retornar el número que se obtiene a partir de sumar los dígitos
pares y restar los dígitos impares.
Ejemplo: dada la siguiente lista: 8251, la función retorna 4, pues 8+2-5-1=4.
b) La función debe retornar el número que se obtiene a partir de sumar los dígitos que se
encuentran en posiciones pares y se restan los dígitos que están en posiciones impares.
Ejemplo: dada la lista: 1328, la función retorna 8, pues -1+3-2+8=8.
3) Realizar una función recursiva que determine si una expresión ingresada por teclado,
formada por los siguientes caracteres (, ), 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +, -, * y /, tiene
correctamente utilizados los paréntesis. Ejemplo de una expresión valida "((8+9)*9+7)".
Ejemplo de una expresiones inválidas "(3+9()" "((4+9)9*8(2))". Considerar que cada carácter
está almacenado en un nodo de una lista.
4) Escribir un procedimiento recursivo que permita:
a) Agregar un elemento al final en una lista simplemente encadenada.
b) Eliminar de una lista encadenada todas las apariciones de un elemento en particular.
c) Eliminar los nº pares de una lista circular.
d) Agregar un elemento en una lista doblemente encadenada ordenada.
e) Invertir los enlaces de una lista encadenada circular.
Descargar