Estructuras de datos
1.1 Especificaciones
Esta tercera practica tiene por objetivo profundizar en los elementos básicos de programación (punteros, bibliotecas de funciones…), aprender a implementar el tipo abstracto de datos llamado “pila” y a desenvolverse con soltura en el paso de expresiones infijo a sufijo y viceversa. En cuanto a los aspectos de las funciones, se repasanconceptos habituales, y se trabaja con librerías.
En todos los ejercicios es necesario el uso del TAD pila, cuyas funciones primitivas implementamos en el primer ejercicio y serán usadas en los 4 restantes. Además en el ejercicio 5 volvemos a usar el paso de argumentos a la función main al llamar al programa.
1.1.1 Especificaciones Particulares Ejercicio 1
Este programa implementa la estructura dedatos “pila” y una serie de funciones primitivas básicas para el uso de este tipo abstracto de datos, estas funciones serán posteriormente usadas en el resto de los ejercicios de la práctica, con la creación del archivo pila.h. Las funciones son las siguientes:
• pilaIni: Inicializa la pila como vacía.
• pilaVacia: indica si la pila está o no vacía.
• pilaLlena: indica si la pila está o nollena.
• Push: introduce un elemento en la pila, devuelve error si no ha sido posible (la pila está llena).
• Pop: saca un elemento de la pila, devuelve error si no ha sido posible (la pila está vacía).
• pilaLibera: inutiliza la pila, y liberaría cualquier recurso interno que se hubiese reservado (ninguno en el caso de la implementación actual).
1.1.2 Especificaciones ParticularesEjercicio 2
Este programa esta diseñado especialmente para probar el funcionamiento de las funciones implementadas en el ejercicio anterior, debe comprobar que los paréntesis, corchetes y llaves de una expresión infijo están emparejados correctamente
1.1.3 Especificaciones Particulares Ejercicio 3
Este ejercicio pide diseñar una función que traduzca una expresión sufijo a una infijo, suponiendo quela expresión sufijo sea correcta. Esta funcion es: tradSufijo2InfijoCompleto.
En la cadena de entrada los distintos ítems deberán estar separados por uno o más blancos, por lo que es necesario implementar algunas funciones auxiliares:
• leerItem:
Obtiene el siguiente ítem de la cadena de entrada, modificando a su vez dicha cadena para que apunte a la siguiente posición a dicho ítem.Nota: Implementar esta función mediante una llamada a la función strtok de la biblioteca
• esOperador:
Indica si un ítem es o no un operador incluido en la cadena pOper
• esOperando:
indica si un ítem es o no un operando. Se asumirá que un operando es cualquier cadena que no sea un operador.
• tradExprBasica:
obtiene la traducción a expresión infijo de una operación entre dosoperandos. Esta función debe implementarse mediante un switch.
1.1.4 Especificaciones Particulares Ejercicio 4
Este ejercicio consiste en el diseño de una función que permita pasar de una expresión infijo a una expresión sufijo, este función recibe el nombre de tradInfijo2Sufijo y debe devolver la expresión sufijo equivalente si la entrada es correcta o un mensaje de error, si no lo es.
1.1.5Especificaciones Particulares Ejercicio 5
Este programa sirve para aplicar las funciones diseñadas en los ejercicios 3 y 4, el usuario debe introducir una serie de parámetros al iniciar el programa y dependiendo de estos parámetros, se debe hacer una traducción infijo a sufijo o sufijo a infijo, el programa debe ofrecer además dos formas de gestionar la información, por medio de ficheros, o recibiendo lacadena como parámetro de entrada y mostrándola en la terminal.
1.2 Análisis
1.2.1 Análisis Particular Ejercicio 1
Este programa posee las funciones primitivas del TAD pila que vamos a usar posteriormente, por lo tanto tiene un archivo de cabecera pila.h con los prototipos de las funciones. Estas funciones son:
• pilaIni: Inicializa la pila como vacía.
Pone a 0 el valor tope del TAD pila....
Regístrate para leer el documento completo.