Various algorithms and data structures
- Array
- Linked List
- Doubly Linked List
- Circular Linked List
- Stack
- Queue
- Priority Queue
- Hash Table
- Circular Buffer
- Binary Search Tree
- Binary Search Tree Map
- Red Black Tree
- Red Black Tree Map
- Trie
- Directed/Undirected Graphs
- Weighted/Unweighted Graphs
- Directed Acyclic Graphs (DAG)
- Strings
- Bubble Sort
- Insertion Sort
- Merge Sort
- Quick Sort
- Selection Sort
- Heap Sort
- Binary Search
- Breadth First Search
- Depth First Search
- Topological Sorting (DAG)
- Minimum Spanning Tree (Prim's Algorithm)
- Minimum Spanning Tree (Kruskal's Union-Find Algorithm)
- Dijkstra's Shortest Path
- Connected Components
- Two-Coloring
- Bipartite Graph
- Finding Cycles
- Union-Find
- Backtracking (Subsets)
- Backtracking (Permutations)
- Daytime Client/Server
- Stream Client/Server
- HTTP Server
- Multi-Threaded HTTP Server
- Show IP Address
- and other networking related programs
- Binary to Number
- Binary Addition
- Bit Comparison
- Bit Tests
- Number to Binary
- Hexadecimal to Binary
- Hexadecimal to Number
- Big and Little Endian
- Hangman Game
To compile and run a program, use make {program_name}
. There is a make command for every C program that has a main()
function. For example, you can run make date_cli
to run the datetime client in src/net/date_cli.c
.
Use make clean
to remove all the binary files from the bin
folder.
make test