Buenas, me surgieron algunas consultas de este tema :
1) Como decido si al momento de borrar datos de un TAD de elementos de un tipo T cualquiera, o al insertarlos el manejo de memoria es responsabilidad del TAD o no. Por ejemplo en el ejercicio 6.a que se pide especificar la pila de K elementos de un tipo T. Como decido si al eliminar un elemento (porque inserto un K + 1esimo o porque borro) debo liberar la memoria asociada a ese elemento o no (en caso de ser memoria dinamica). Ademas, supongamos que el tipo T es un puntero a una estructura, por ejemplo un arbol, como decido si la insercion hace una copia solo del puntero o de toda la estructura (crea un arbol nuevo)?
2) Cuando especifico un TAD, es correcto ponerle ordenes a las operaciones o deberia quedar por fuera?
3) Deberia aclarar si los borrados en un TAD son fisicos o logicos para asi quien use el TAD puede optimizar su uso de memoria o debe quedar por fuera porque es algo mas relacionado a la implementacion?
4) Los casos en que tengo un TAD con una cota , y mi operacion de insercion devuelve un booleano indicando si se inserto o no el elemento, son considerados acotados o no acotados? Y los casos como el ejercicio 6a en que no puede haber mas de K elementos, pero puedo insertar borrando los mas viejas?
5) Como funciona bien esas predirectivas que ponen antes de la especificacion en una tarea? Hablo de :
#ifndef _PILA_H
#define _PILA_H
#endif