18-simple-singly-linked-list/mainpage.h
MarcUs7i ae50527f75 yes
2025-03-18 18:26:12 +01:00

46 lines
No EOL
2.5 KiB
C

/**
* @mainpage
* @section intro Introduction
*
* The implementation of a "Simple Singly Linked List".
*
* @section objective Assignment Objective
* In this assignment an Abstract Data Type of a "Simple Singly Linked List" shall be implemented against
* the defined common interface of a list. This interface is declared within file 'list.h'. It is intended
* to be used by applications or other libraries and aims to abstract the 'list' functionality as far as possible.
*
* The term 'simple' in 'Simple Singly Linked List' refers to the limited members of the list data:
* the pointer to the list head node is the only member of list data.
*
* **Configuration**
*
* There is no configuration required.
*
* @section assignment Assignment
* The 'Simple Singly Linked List' shall be implemented in file 'simple_singly_linked_list.c'. The corresponding header file
* includes the common interface 'list.h' but does not add functions by its own.
*
* The library 'allocator' is provided for memory allocation functionality that integrates with unit testing. Behind the facade,
* allocats memory dynamically similar to `malloc`. Allocated memory must be freed when it is not used anymore. The 'allocator'
* library must be used for memory alloction operations, otherwise unit tests will fail.
*
*
* -# Implement 'simple_singly_linked_list.c' against interface indirectly declared in 'list.h':
* Make the program and tests compile: Implement all functions in all relevant files declared in the headers
* EMTPY (return nothing, 0, false, ... as required).
* - All unit tests shall run but FAIL after this step
* - **--COMMIT--**
* -# Implement the empty functions one by one to make the unit tests pass one by one.
* - The purpose of a function is specified as API documentation within the header files.
* - Obey comments in source files. Run the unit tests frequently and fix failures.
* - **--COMMIT-- after each implemented function.**
*
* Main driver is not required in this assignment.
*
* @section notes Notes
* -# make cleantest: This new make target for clearing the console, building, and running unit test is available.
* -# Sometimes changes are not properly detected by incremental builds. If something very strange
* happens during compilation, try to run `make clean` followed by `make` to start a clean build.
* This approach is also recommended after everthing is done, because some compiler warning appears
* only in clean builds.
*/