Algorithm-and-Data-Structure Contents C++ STL Basic Data Structures Linked List Stack Queue Sorting Algorithms Selection Sort Bubble Sort Insertion Sort Shell Sort Merge Sort Quick Sort Heap Sort Binary Search Graph Graph Representaion Graph Traversal Shortest Path BFS (Shortest Path) DP (Shortest Path) Dijkstra's Algorithm Bellman-Ford Algorithm Floyd-Warshall Algorithm Disjoint Set Minimum Spanning Tree Prim's Algorithm Kruskal's Algorithm Topological Sort Strongly Connected Components Tarjan's Algorithm Kosaraju's Algorithm Tree Rooted Tree Binary Tree Binary Search Tree Heap Dynamic Programming (DP) Range Query Prefix Sum Segment Tree Fenwick Tree Square Root Decomposition Treap String Matching