DoublyLinkedSortedList (SDDList)

Project has following folder tree .
├── README.md
├── app
│   └── main.cpp
├── build
├── code
│   ├── SDDList.cpp
│   ├── SDDList.h

│   ├── SongCatalog.cpp

│   └── SongCatalog.h
├── input │   ├── songs_small.txt │   └── songs_large.txt └── tests
└── test_SDLList.cpp

README.md : Readme file
app\ : Application folder
main.cpp : This file runs some simulations in order to demonstrate use of the data structure in our use case build\ : Build folder to build the project. Executables appear here after running cmake and make. code\ : Contains the following four files: SDLList.cpp : DoublyLinkedSortedList class source file.
SDLList.h : DoublyLinkedSortedList class header file. SongCatalog.cpp : Source file for our SongCatalog class, a vector of "songs" used for simulation purposes. SongCatalog.h : Header file for SongCatalog class.
input\ : Contains a text file with all of the "songs" that are put into our Song Catalog for simulations. tests\ : Tests folder
test_LinkedList.cpp : Tests the DoublyLinkedSortedList file by building class examples and outputting results user can verify.

HOW TO COMPILE

Either download the directory or clone it from Github. I built code on my Mac but also tested on Jupyterhub successfuly.

your_username:~$ git clone https://github.com/SecondEdition/SDLList.git

Compiling directions are identical to the ones we had for class when compiling for linux. Change directory into the /build folder [cd build], invoke Cmake, and then type "make" into your console in order to compile.

youruser:~$ cmake .. 
... some output here ... 
youruser:~$ make

ABOUT or RUNNING APP AND TESTS

Running the main app will run a small and a large simulation with songs getting added to the catalog and then played, showing printouts along the way, then demonstrating song removal and clear functionality at the end.

youruser:~$ ./run_app

Running the tests file should show that all tests are passed as well as some output. You need to look at the test file in order to see what the tests are and how they show that each function works and that edge cases are handled.

youruser:~$ ./run_tests