orangejulius / cs_fundamentals

simple implementations of common data structures/algorithms

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

This is a small project that intends to implement basic versions of some core data structures.
Basically the point is to cover common interview questions.

All the code is written in C: it's one of my favorite languages: beautiful, simple and perfect for
low level work.

Unit-like tests are written in many cases, but are by no means complete.

For an added challenge GNU Autotools are used to build everything. Part of me enjoys the pain of
using such a quintessential UNIX tool, another part would rather I just used CMake and focus on
writing real code.

Here's what I cover so far:
* Linked lists
 - linear (non-circular), singly linked lists
 - basic operations: insert into, delete from, reverse
* stacks
* Binary trees
 - basic operations: leaf inserting
 - traversing: inorder, preorder, postorder (recursive and stack-based)
* Hash tables
* Sorting algorithms
 - bubble sort
 - insertion sort
 - quicksort
 - bogo sort

And here's an incomplete list of what I intend to cover in the future:
* linked lists
  - doubly linked lists
  - circular linked lists
* Binary trees
 - deletion
 - root insertion
 - rotation
 - balancing
* other tree structures
  - tries
  - B-trees

About

simple implementations of common data structures/algorithms

License:GNU General Public License v3.0


Languages

Language:C 100.0%