Templated C++ library of Linked List data structures
LinkedListsCPP project features a collection of linked list data structures. These linked lists are fully templated and mirror the syntax and functionality of the C++ standard library containers. Currently only the linear linked list is implemented, but stay tuned for doubly and circular linked list releases!
All releases are header only, so just drop the .hpp file into your includes and start using the linked list like this:
#include <iostream>
#include "linear_linked_list.hpp"
int main()
{
linear_linked_list<char> list { 'H', 'E', 'L', 'L', 'O', '!', '\n' };
for(const char& letter : list)
{
std::cout << letter;
}
// Prints "HELLO!" to the console
return 0;
}
Extensive documentation can be expected for the future. For right now, however, please the read header comments or examine how the linked lists are used in the unit tests for usage instructions.
For those who wish to contribute, you’ll need to build and run the unit tests. This repo utilizes Premake5 to build the necessary project files. After you Premake5 is installed you can start building the project.
First, clone the repository
git clone https://github.com/AlexanderJDupree/LinkedListsCPP.git
Navigate to the project directory
cd LinkedListsCPP
And run premake5
premake5 gmake
cd gmake && make
Please read CONTRIBUTING.md for details on our code of conduct.
All contributions are welcome: bug fixes, recommendations, issues, features.
Plase see the issues before you submit a pull request or raise an issue to avoid duplication.
To contribute to this repository:
Download the project using git clone:
git clone git@github.com:<YOUR_USERNAME>/LinkedListsCPP.git
git checkout -b descriptive_branch_name
Write some code, fix something, and add a test to prove that it works. No pull request will be accepted without tests passing, or without new tests if new features are added.
Commit your code and push it to GitHub
Open a new pull request and describe the changes you have made.
We’ll accept your changes after review.
Simple!
We use SemVer for versioning. For the versions available, see the tags on this repository.
See also the list of contributors who participated in this project.
This project is licensed under the MIT License - see the LICENSE.md file for details
This readme and the contributing guidelines are based off this great template