I started the project by learning data structures and algorithms from a book Problem Solving with Algorithms and Data Structures using Python. It does not contain everything from the book, nor is everything implemented in the same way, but it also contains other data structures, algorithms and problems.
- Anagrams - quadratic solution
- Anagrams - log linear solution
- Anagrams - linear solution
- Time - iterative solution
- Time - non-iterative solution
- Stack - array implementation
- Stack - less efficient array implementation
- Stack - fixed size array implementation
- Stack two queues
- Stack - linked list implementation
- Queue - array implementation
- Queue - fixed size array implementation
- Queue - linked list implementation
- Circular queue - fixed size array implementation
- Queue - two stacks implementation
- Convert number - recursive solution
- Convert number - iterative solution
- Factorial
- Fibonacci - iterative solution
- Fibonacci - recursive worst solution
- Fibonacci - memoization
- Fibonacci - recursive solution
- Fibonacci sum
- Maze - path finder
- Palindrome
- Reverse linked list - recursive solution
- Reverse linked list - iterative solution
- Reverse linked list - iterative solution stack
- Reverse list
- Reverse string
- Sum numbers - binary recursion
- Sum numbers - recursion with pointer
- Sum numbers - recursion with slicing
- Towers of Hanoi
- Sequential search - unordered list
- Sequential search - ordered list
- Binary search iterative
- Binary search recursive
- Binary search recursive pointers
- List of lists representation
- Class representation
- Parse tree
- Tree traversal
- Binary Heap - min heap implementation
- Binary Search Tree
- AVL tree
- Bubble sort
- Short bubble
- Insertion sort
- Selection sort
- Merge sort
- Quicksort in place
- Quicksort - return new array