Since this is a major revision, the changes are numerous. Now all data containers in Kyle's book are included in the library, AFAIK. Some graph algorithms are present, too.
- Added new container source:
cslist.c, cslist.h, set.c, set.h, ohashtbl.c, ohashtbl.h, graph.c, graph.h
- Added new source files for Graph Algorithms, algo.c, algo.h. Here you'll find functions for calculating Minimal Spanning Tree, Dijkstra's Shortest Path and Traveling Salesman Path. Functions for graph searching - Breadth First Search(BFS), Depth First Search(DFS) are also present in these files
- Added new demo source:
demo08.c, demo09.c, demo10.c, demo11.c, demo12.c, demo13.c demo14.c
- showing usage of Circular List, Set, Open-Addressed Hashtable and Graph ADT:s (together with some Graph Algorithms) - Demo program
demo14.c
is a more extensive graph demo - implementing the Dijkstra's Shortest Path algorithm - Made all demos menu-driven - with rudimentary error handling
- Moved some utility functions from demo source files - to file
utils.c
andutils.h
- Four new container ADT:s - Circular List, Set, Open-Addressed Hashtable and Graph - accompanied by demos (
demo08.c, demo09.c, demo10.c, demo11.c, demo12.c demo13.c
) - More extensiv Graph ADT demo:
demo14.c
- Introducing Graph Algorithms (in files
algo.c algo.h)
- Extended and fine-tuned the documentation accordingly...
- A lot...
- Added new source:
bitree.cp, bitree.h, avltree.c, avltree.h, utils.c, utils.h
- Added new demo source:
demo6.c, demo7.c
- showing usage of binary search and AVL trees. - Some changes in demo4.c so the user can interactively decide nr of insertions/removals of nodes.
- Improved the documentation somewhat.
- Two new container ADT:s - simple binary search tree - and the more advanced AVL tree - accompanied by demos (
demo6.c, demo7.c
).
- Minor ones...
- Added new source:
heap.c, heap.h, pqueue.c, pqueue.h
- Added new demo source:
demo5.c
- showing both the array and tree structure of a priority queue. - Improved the documentation - when it comes to describing "in/out" parameters - implemented as double-pointers in C.
- Improved "defensive programming" in all the demo programs (using assertions and checking return values by if-blocks)
- Two new container ADT:s - heap and prioity queue - accompanied by a demo (
demo5.c
).
- Minor ones...
- Added new source:
chashtbl.c, chashtbl.h
- a chained hash table ADT. - Added new demo source for the hashtable ADT:
demo4.c
- Made following changes to function
int SLISTremnode(Slist list, void **data)
:
Changed function name toint SLISTfind_remove(Slist list, void **data)
Changed return value of this function - for missing "match-callback"(=not set) - from -1 to -2
Changed return value - for node not found - from -1 to 1 (see documentation for further information) - Added a new function:
int DLISTfind_remove(Dlist list, void **data)
- to the public interface of doubly-linked lists (see Doxygen documentation anddlist.c/h
). - Made some minor revision to the Doxygen documentation. Enhanced the description of in/out parameters - i.e. double-pointers
- A new container ADT - chained hash table (
chashtbl.c/h
) - accompanied by a demo (demo4.c
).
- Some minor ones...
- Added new API source:
stack.c, stack.h, queue.c, queue.h
(mainly simple "wrappers" around code inslist.c
) - Added new demo source:
demo3.c
- Two new container ADT:s - stack and queue - accompanied by a demo.
- None
- Added initial API source:
slist.c, slist.h, dlist.c, dlist.h
- Added initial demo source:
demo1.c, demo2.c
- Uploaded 2 container ADT:s - singly- and doubly-linked-list - accompanied by demos.
- None