Category Archives: Graph

Greedy Algorithms | Set 5 (Prim’s Minimum Spanning Tree (MST))November 18, 2012

We have discussed Kruskal’s algorithm for Minimum Spanning Tree. Like Kruskal’s algorithm, Prim’s algorithm is also a Greedy algorithm. It starts with an empty spanning tree.

Graph and its representationsNovember 13, 2012

Graph is a data structure that consists of following two components: 1. A finite set of vertices also called as nodes. 2. A finite set of ordered pair of the form (u, v) called as edge.

Greedy Algorithms | Set 2 (Kruskal’s Minimum Spanning Tree Algorithm)October 30, 2012

What is Minimum Spanning Tree? Given a connected and undirected graph, a spanning tree of that graph is a subgraph that is a tree and connects all the vertices together.

Union-Find Algorithm | Set 2 (Union By Rank and Path Compression)October 28, 2012

In the previous post, we introduced union find algorithm and used it to detect cycle in a graph.

Union-Find Algorithm | Set 1 (Detect Cycle in an Undirected Graph)

A disjoint-set data structure is a data structure that keeps track of a set of elements partitioned into a number of disjoint (non-overlapping) subsets.

Find the number of islands | Set 1 (Using DFS)October 17, 2012

Given a boolean 2D matrix, find the number of islands. A group of connected 1s forms an island. For example, the below matrix contains 5 islands Input : mat[][] = {{1, 1, 0, 0, 0}, {0, 1, 0, 0, 1}, {1, 0, 0, 1, 1}, {0, 0, 0, 0, 0}, {1, 0, 1, 0, 1}… Read More »

Dynamic Programming | Set 16 (Floyd Warshall Algorithm)June 7, 2012

The Floyd Warshall Algorithm is for solving the All Pairs Shortest Path problem. The problem is to find shortest distances between every pair of vertices in a given edge weighted directed Graph.

Backtracking | Set 6 (Hamiltonian Cycle)May 4, 2012

Hamiltonian Path in an undirected graph is a path that visits each vertex exactly once. A Hamiltonian cycle (or Hamiltonian circuit) is a Hamiltonian Path such that there is an edge (in graph) from the last vertex to the first vertex of the Hamiltonian Path.

Find if there is a path between two vertices in a directed graphApril 10, 2012

Given a Directed Graph and two vertices in it, check whether there is a path from the first given vertex to second.

Detect Cycle in a Directed GraphApril 3, 2012

Given a directed graph, check whether the graph contains a cycle or not. Your function should return true if the given graph contains at least one cycle, else return false.

Breadth First Traversal or BFS for a GraphMarch 20, 2012

Breadth First Traversal (or Search) for a graph is similar to Breadth First Traversal of a tree (See method 2 of this post).