A collection of data structures in C, for my own benefit.
This repository contains a number of simple data structures for the C language. All structures are designed to be dynamic in the sense that they are capable of expanding to hold as many values as needed. Each structure is also able to store values of any data type.
Stack type. Implemented like a linked list.
Queue type. Implemented like a linked list.
Linked list type. Contains a reference to both the head and tail, which allows for optimization of several useful functions.
List type. Based on Python's list object. Contains functions for just about everything one could possibly need. Size is doubled when more space is needed and halved when enough is left unused.
Hash table type. Based on Python's dictionary object. Contains functions for just about everything one could possibly need. Size is doubled when more space is needed and halved when enough is left unused. Linear probing is used to resolve collisions. Hashing is implemented by summing the binary data of a key.
Binary tree type.
String type. Based in part on Python's string type.