&
.--"`"--.
/ \
| __ _|
| / \/ \
WW \_o/_o/
( _)
| .----\
; | '----'
\____'--;`
|_____/\|
recursion
^8^ sierpinski gasket ^8^
fill a fractal with a user-specified size (size must be power of 2)
^8^ towers of hanoi ^8^
move a tower of discs from one peg to another using three pegs
stack implemented two ways: int array and linked list
^8^ merge sort integers ^8^
recursively half int array and after hitting base case sort subarrays to an alloc'd array
^8^ quicksort integers ^8^
recursively sort parts of array to the left and to the right of pivot
recursion+backtracking
^8^ permutations ^8^
print all permutations of a char set + dp variant
^8^ nqueens ^8^
place n queens on a n*n chessboard
graphs
^8^ graph create ^8^
create graph from file using three representations: edge list, adjacency matrix and adjacency lists
^8^ queue ^8^
single linked list implemetation
^8^ bfs ^8^
breadth-first search using struct array of vertices and linked adjacency lists + show path
dynamic programming
^8^ fibonacci ^8^
fibonacci numbers on unsigned long longs
^8^ longest common substring ^8^
longest common contiguous substring in two strings
^8^ knapsack ^8^
a thief in a store tries to maximize his loot constrained by the size of his knapsack
utilizes a two-pass mark and detach approach to free interconnected lists
data structures
^8^ singly linked list ^8^
simple version and version with a tail pointer
^8^ binary search trees ^8^
insert, delete, search, traverse, min, max, successor, predecessor
^8^ red-black trees ^8^
BUGS! insert, delete, search, traverse, min, max, successor, predecessor
misc
^8^ insertion sort ^8^
simple iterative sorting, good for almost sorted arrays
^8^ is_palindrome ^8^
checks if the string is a palindrome
TODO:
priority queue
dijkstra's algorithm
AVL tree