Skip to content

Latest commit

 

History

History
50 lines (37 loc) · 2.04 KB

File metadata and controls

50 lines (37 loc) · 2.04 KB

Collections

Collections is a C library that implements useful data structures for developers. At this time, a singly linked list and a stack have been implemented. Trees, maps, and more are also on the way.

Stay tuned!

Usage

Linked List

A linked list is a list of nodes, where each node contains a data element and a pointer to the next node.

Creating a new list

A linkedlist can be instantiated via alloc_ll(), which returns a pointer to a newly allocated linked list.

Adding an element

To add an element, call ll_add(linkedlist *list, void *element), where list is a pointer to the linked list to add the element to, and element is a pointer to the element you wish to add. This function returns the macro LINKEDLIST_OK on success.

Getting an element

To get an element, call ll_get(linkedlist *list, unsigned int position), where list is a pointer to the linked list to get the element from, and position is the position of the element you wish to fetch from the list.

This function returns a void pointer to the element on success, and LINKEDLIST_OUT_OF_BOUNDS_EX if position is outside the bounds of the list.

Remember to cast the result of this function into a pointer to of the element's type before dereferencing!

Deleting an element

To delete an element, call ll_delete(linkedlist *list, unsigned int position), where list is a pointer to the linked list to delete the element from, and position is the position of the element to delete from the list.

This function returns LINKEDLIST_OK on success and LINKEDLIST_OUT_OF_BOUNDS_EX if position is outside of the bounds of the list.

Getting the list's size

To get the size of a list, call ll_size(linkedlist *list), where list is a pointer to the list to get the size of. This function returns the list's size as an unsigned int.