**Top Algorithms:
**

Every computer science student is expected to know the following algorithms:

Insertion Sort, Selection Sort, Merge Sort, Quicksort, Counting Sort, Heap Sort

Kruskal’s Algorithm

Floyd Warshall Algorithm

Dijkstra’s Algorithm

Bellman Ford Algorithm

Kadane’s Algorithm

Lee Algorithm

Flood Fill Algorithm

Floyd’s Cycle Detection Algorithm

Topological Sorting in a DAG

Union Find Algorithm

**Top Data Structures:**

Along with the above algorithms, every computer science student is expected to

**implement the following data structures:**

**Linked List — C, C++, Java, Python**

**Linked List — Insertion at Tail**

**BST — Insertion, Searching, Deletion**

**Stack implementation using an array — C, C++, C++ (Using Templates), Java, Python**

**Stack Implementation using a Linked List****Queue implementation using an array — C, C++, C++ (Using Templates), Java, Python****Queue Implementation using a Linked List****Min Heap and Max Heap — C++, Java****Graph — C, C++, C++ STL, Java Collections, Python****Trie — C, C++, C++ (Memory Efficient), Java, Python**

**Top Concepts:**
Finally, one is also expected to be familiar with other programming paradigms like Backtracking, Dynamic Programming, Divide & Conquer and Greedy Algorithms, and concepts like Hashing and Recursion.

### Did you find this article valuable?

Support **Mavrick.Dev 🦅** by becoming a sponsor. Any amount is appreciated!