Reference: https://www.geeksforgeeks.org/introduction-to-linked-list-data-structure-and-algorithm-tutorial/
A linked list is a data structure that allows for a list of elements that can dynamically increase and decrease in size.
Usually, in C, an array can only have a static size once it is declared, and once it is filled, it can no longer get any more space or elements added to it.
Since a linked list is a series of “nodes”, or structs that point to each other, then new elements can easily be added: as long as there is enough memory to be allocated to a new struct, the last struct in a linked list can be made to point to this new struct.
The same also applies for removing elements. Once an element has been removed from a linked list, the memory can be freed so it can be used elsewhere, if needed.
Since this project deals with linked lists and dynamically adding and removing elements from a list, malloc will still need to be used to allocate memory.
Generally, malloc will need to be used to add a new element to a linked list.
The pseudocode will look like so:
functionForAddingElement(args) { struct* newStruct = (struct*)malloc(sizeof(struct)); // Place Data into New Struct // Loop through Linked List to the End // Place New Struct at End of List }
Reference: https://www.geeksforgeeks.org/insertion-in-linked-list/