Welcome to C-data-structures! This is a collection of various data structures implemented in C using void pointers and macros. Each data structure in this project is designed to provide efficient and flexible solutions to common programming challenges. The use of void pointers and macros allows for a generic implementation that can handle different types of data. The present project is from the course "Data Structures and Programming Techniques" which I attended in the first year of my undergraduate studies with a grade 10/10.
Data structures are fundamental building blocks in computer science and programming. They enable efficient data organization, storage, and retrieval, often optimizing algorithms and overall program performance. This project aims to provide a versatile and reliable library of data structures for C programmers.
The following data structures have been implemented in this project:
- AVL tree
- Bloom Filter
- Double Hashing Hash Table
- Double Linked List
- Priority Queue
- Queue
- Red Black Tree
- Separate Chaining Hash Table
- Skip List
- Stack
- Vector
Each data structure has its own separate README file, which provides specific details about its implementation, usage, and performance characteristics.
To use any of the data structures in your C projects, follow these general steps:
- Clone or download this repository to your local machine.
- Navigate to the specific data structure directory you are interested in.
- Include the necessary header files in your C code.
- Compile your code along with the data structure's source files.
- Use the provided API functions to interact with the data structure in your program.
For more detailed instructions and examples, refer to the individual README files for each data structure.
This project is licensed under the MIT License. You are free to use, modify, and distribute the code for both personal and commercial purposes. However, it comes with no warranties or guarantees of any kind. Use it at your own risk.
Thank you for using C-data-structures, I hope you find it useful!