Skip to content

UseTheApi/algorithms

Repository files navigation

Algorithms Study Cases

This repo contains most common algorithms and DS implementations. Solution are implemented in c++ or python.

To execute implemented tasks please follow the instructions in wiki of this repo.

Makefiles are provided: wiki

The list of implemented tasks is represented in Readme.md.

Descriptions for each task and solution are in folders (click on links in task lists).

Current List:

Stack & Queue: c++

  1. Stack implemented with Linked List: stack_linked_list/
  2. Queue implemented with Linked List: queue_linked_list/
  3. Special Stack with getMin() method: special_stack/
  4. Stack implemented from a Queue: stack_queue/
  5. Queue implemented from a Stack: queue_stack/

Linked List: c++

  1. Implementation of a class: implementation/
  2. Detect and Remove cycle: detect_remove_loop/

Sorting: c++

  1. Selection Sort selection_sort
  2. Insertion Sort insertion_sort
  3. Merge Sort merge_sort
  4. Heap Sort heap_sort

Binary Min Heap: c++

  1. Implementation of a class: implementation

Trees: c++ | python

  1. Binary Heap: c++

  2. Binary Search Tree: c++

    1. Implementation: c++ bst, avl
    2. Traversals: c++
    3. Applications: c++
      • In-order Successor: c++
      • Lowest Common Ancestor for two nodes in BST: c++
      • 2nd Largest Node in BST: c++
      • Non-related nodes in BST: c++
      • Determine if two trees are equal: c++
  3. Binary Tree Applications:

    1. All Paths With Sum python
    2. Duplicated Subtrees python
  4. Weighted Tree

Dynamic programming: python

  1. Edit Distance: python
  2. Longest Increasing Subsequence: python

Recursion:

  1. Edit Distance: python
  2. Longest Increasing Subsequence: python