Buenas,
Haciendo un par de parciales y exámenes viejos vi que en la mayoría de ejercicios de especificación de TADs se elige especificarlos de la forma void NombreFuncion(...) antes de que la forma TipoDato NombreFuncion(...), osea se elige especificarlos como procedimientos y no como funciones. También note que las especificaciones a veces difieren para las mismas operaciones, por ejemplo, hablando del TAD cola en algunas especificaciones de desencolar se pone como pre-condición que la cola no este vacía mientras que en otras se aclara que si la cola esta vacía la operación no tiene efecto.
Es una forma mas correcta que las otra? O es solo tema de criterios? Por las tareas estoy acostumbrado a plantearlo como funciones pero en evaluaciones y prácticos las resoluciones están casi siempre como procedimientos