## OOP Concepts in practice using TypeScript

The idea of this post is to modify a very small part of imaginary software by applying OOP concepts.

The idea of this post is to modify a very small part of imaginary software by applying OOP concepts.

A Hash table is a data structure with a highly efficient lookup, which store key values pairs

Search algorithms that are used to retrieve information from a data structure, in this post I'll describe 3 search algorithms to find an element in lists

Quick Sort is an in-place sorting algorithm that uses a divide-and-conquer technique to sort a given list

Merge sort is a sorting algorithm that uses a divide-and-conquer technique to sort a given list

In this post, I'll describe three sorting algorithms that, although not the most efficient, are easy to understand.

Checking if a Binary Tree is a BST step by step

Binary Search Trees are useful when you need to insert, delete and search comparable elements.

There are some ways to reverse a Singly Linked List, the one that I want to show here doesn't require extra space.

Topological sort is an ordering of the vertices of a directed acyclic graph, in a way that if there is an edge from a vertex A to B, then A comes before B.

Graphs can be used to represent networks, websites structure, path optimization algorithms, there are also applications in other fields.

Queues can be used whenever is necessary to process things in a first-in-first-out order, also helps in algorithms of other data structures.

You can use stacks for expressions evaluations and conversion, backtracking, and memory management.

Linked Lists have some advantages over arrays and can be used to implement other data structures, such as stacks, queues, and graphs.

An array is a common data structure that holds items of the same type, in TypeScript, unlike other languages, an array doesn't have a fixed length.