This project covers some basic Dynamic Data Structures implemented as pure, generic ADT:s, coded in ANSI C. Makefiles for building a library, both for Windows/Linux are included. You can also download a tarball to build/install the library from source, under Linux/Unix. Primarily for educational purposes - but the project can, of course, be useful in other contexts, as well. Purpose:
Original source code was written by Kyle Loudon - in his book Mastering Algorithms with C - published at O'Reilly Company. I have rewritten and extended some minor parts of the original source code. Finally, I want to thank Kyle and O'Reilly for giving me permisson to publish this code here at GitHub.
Authors:Kyle Loudon - and me.
see file ChangelogChangeLog.md
see file "UNLICENSE" above. License/Disclaimer:
Project webpage: http://dale48.github.com/levawc/
In case you want to regenerate the documentation locally - on your box:Clone (or download zipfile of) this project, install Doxygen - and finally run command:
doxygen- from the command prompt - when standing in the top-most directory of your clone. Then point your browser to the file
index.htmlin the the new subdirectory
html- recently created by this command.
In the Demos:
demossubdirectory you will find some simple demos (
demo01.c, demo02.c, demo03.c, ...) - using the ADT containers. You can build these yourself - together with a complete, single library (
liblevawc.a/levawc.lib) of all the ADT:s - by simply using the enclosed makefiles in this directory, like this:
linux.mak- uses the native gcc compiler in Linux. Command:
make -f linux.mak
mingw32.mak- uses Mingw32 gcc Compiler in Win32 - under a native DOS Shell.
mingw32-make -f mingw32.mak
msys32.mak- uses the Mingw32 gcc Compiler in Win32 - under the MSYS Shell.
make -f msys32.mak
vcwin32.mak- uses MS Visual C compiler in Win32. Command:
nmake -f vcwin32.mak
Another way, to build the library and the demos, is to download a GNU Tarball - if you are sitting on a UNIX/Linux box or if you have Cygwin or MSYS/MinGW installed - on Windows. Decompress the tarball - enter the root directory of the unpacked tarball - and then execute the usual commands for GNU Tarballs:
make and finally -
[sudo] make install - if you want to install. The demos are created just where you are - ready to run - and the library and header-files are installed on your system.
The demos are trying to test and show most of the public interface of the ADT:s - accordingly:
demo01.c- testing/showing Singly-linked List ADT..
demo02.c- testing/showing Doubly-linked List ADT..
demo03.c- testing/showing Stack and Queue ADT..
demo04.c- testing/showing Chained Hash Table ADT..
demo05.c- testing/showing Heap and Priority Queue ADT..
demo06.c- testing/showing Binary Search Tree ADT..
demo07.c- testing/showing AVL Tree ADT..
demo08.c- testing/showing Circular, Singly-linked List ADT..
demo09.c- testing/showing Set ADT..
demo10.c- testing/showing Open-addressed Hash Table ADT..
demo11.c- testing/showing basic Graph ADT editing, BFS(Breadth-First-Search) - and DFS(Depth-First-Search)..
demo12.c- testing/showing interactive Graph editing..
demo13.c- testing/showing Graph Algorithms, such as MST(=Minimal Spanning Tree), DSP(=Dijkstra's Shortest Path) and TSP(=Traveling Salesman Path)..
demo14.c- a more extensive Graph ADT application, using Dijkstra's Shortest Path algorithm. A (distance-low-cost) criss-cross flight within EU.
All demos are tested on both Windows and Linux. Tracing for memory leaks was done with Valgrind, Linux.