Skip to content

Various algorithms and data structures

License

Notifications You must be signed in to change notification settings

jonathantorres/algo

Repository files navigation

Algo

Various algorithms and data structures

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

Algorithms

  • 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)

Internet/Network

  • Daytime Client/Server
  • Stream Client/Server
  • HTTP Server
  • Multi-Threaded HTTP Server
  • Show IP Address
  • and other networking related programs

Computer Architecture

  • Binary to Number
  • Binary Addition
  • Bit Comparison
  • Bit Tests
  • Number to Binary
  • Hexadecimal to Binary
  • Hexadecimal to Number
  • Big and Little Endian

Other

  • Hangman Game

Compiling and running

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.

Running Tests

make test

About

Various algorithms and data structures

Topics

Resources

License

Stars

Watchers

Forks