AlexanderJDupree / LinkedListsCPP

Templated C++ library of Linked List data structures

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LinkedListsCPP

CircleCI Codacy Badge codecov GitHub license

Introduction

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!

Getting Started

Prerequisites

  • 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!

Usage

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.

Execute Unit Tests

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/

Built With

Contributing

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:

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!

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

  • Alexander DuPree - Initial work - GitHub
  • Jacob Bickle - Co-Author - GitHub

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Special Thanks

This readme and the contributing guidelines are based off this great template

About

Templated C++ library of Linked List data structures

License:MIT License


Languages

Language:C++ 97.1%Language:Lua 2.9%