Personal journey through classic computer science concepts, implemented from scratch in C.
This repository is a collection of fundamental data structures and algorithms.
You'll need a C compiler, eg. gcc or clang, and make to build and run the
project.
By its nature, the main target of the project builds the shared library
libc-nostalgia.so.
makeSome data structures can be customized. For example, you can make the List to
be either sigly or doubly linked by changing LIST_IMPL variable.
make LIST_IMPL=doubleOnce the library is compiled, the headers in include/c-nostalgia and
libc-nostalgia.so can be used as follows in your own programs. In the
following example I moved everything in the same directory for simplicity.
$ eza -T
.
├── libc-nostalgia.so
├── list.h
└── main.c
$ gcc -I. -L. -lc-nostalgia main.c -o mainEach implementation includes some tests that you can run with.
make test