You can use any code which you implemented by yourself *in its entirety*, including headers. This is especially to say that header files provided (or too similar to such) by matam course will not be accepted (heavily penalized in the dry check). Another requirement - you may only include code actually used in the current exercise. Chunks of code not used anywhere will be penalized as well. Apart of that, you may use (implement) any kind of ADT or Generic ADT that suits the task. The requirement that you implement all code is partly motivated by the fact that the exam often requires defining a datatype header - so (and especially if you're retaking the course) you might as well practice it.
|