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!
- Download the latest release here.
- linked_list.hpp utilizes C++ 11 language features and will NOT compile in older C++ language standards. In the future, compiler and language standard detection will be added for compatibility. If you want to work on this feature, feel free to contribute!
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 to generate the project files for your platform. For example to build GNU Makefiles run:
premake5 gmake
- To run the unit tests, just build the application.
cd gmake && make
- If you need to rerun the tests, they are located in bin/tests/
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
- Create a new branch with a descriptive name:
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