# Top Algorithms/Data Structures/Concepts every computer science student should know

**Top algorithms –**

Insertion sort, Selection sort, Bubble sort

Lee algorithm | Shortest path in a Maze

Floyd’s Cycle Detection Algorithm

Longest Increasing Subsequence

Inorder, Preorder, Postorder Tree Traversals

Disjoint-Set Data Structure (Union-Find Algorithm)

Kruskal’s Algorithm for finding Minimum Spanning Tree

Single-Source Shortest Paths — Dijkstra’s Algorithm

All-Pairs Shortest Paths — Floyd Warshall Algorithm

**Top Data Structures –**

Along with above algorithms, every computer science student is expected to implement below data structures –

Linked List Implementation | Part 1

Linked List Implementation | Part 2

Insertion in BST

Search given key in BST

Deletion from BST

Graph Implementation using STL

Graph Implementation in C++ without using STL

Trie Implementation | Insert, Search and Delete

Memory efficient Trie Implementation using Map | Insert, Search and Delete

One is also expected to be familiar with other programming paradigms like Backtracking, Dynamic Programming, Divide & Conquer, Greedy Algorithms and concepts like Hashing and Recursion.