📄️ Introduction
Graphs can solve a plethora of interesting problems!
📄️ Bellman Ford Algorithm
Bellman Ford Algorithm computes shortest paths from a single source vertex to all of the other vertices in a weighted digraph
📄️ Binary Search Tree
A binary tree where left child is less than or equal to the parent, while the right child is greater
📄️ Binary Tree
Binary Tree is a tree structure in which eacho node only contains at most two children
📄️ Breadth First Search (BFS)
In BFS, we explore all the closest nodes first before going one step further.
📄️ Depth First Search (DFS)
In DFS, we aim to finish one branch before looking at other branches.
📄️ Dijkstra's Algorithm
Dijkstra's Algorithm is used to find the shortest paths between nodes in a graph.
📄️ Disjoint Set Union (DSU)
Disjoint Set Union is a data structure that allows us to combine any two sets into one.
📄️ Kahn's Algorithm
Kahn's Algorithm is a classical algorithm in computer science that is used for topological sorting of directed acyclic graphs (DAGs)
📄️ Kruskal's Algorithm
Kruskal's algorithm is a greedy algorithm used to find the minimum spanning tree of a connected, undirected graph.
📄️ Lowest Common Ancestor(LCA)
Lowest common ancestor (LCA) of two nodes x and y is the deepest(lowest) node that has both x and y as descendants
📄️ Minimum Spanning Tree
A minimum spanning tree is a subset of the edges of a connected undirected graph with the minimum possible total edge weight and it does not contain any cycles.
📄️ Tarjan's Algorithm
Tarjan's algorithm can be used to determine the Strongly Connected Components of a directed graph.
📄️ Topological Sorting
Topological Sorting is a linear ordering of its vertices such that for every directed edge (u, v) from vertex u to vertex v, u comes before v in the ordering.