## Generate power set of a given set

Given a set S, generate all subsets of it i.e., find power set of set S. A power set of any set S is the set of all subsets of S, including the empty set and S itself.   For example, if S is the set {x, y, z}, then the subsets of S are: …

## Convert Max Heap to Min Heap in linear time

Given an array representing a Max Heap, in-place convert the array into the min heap in linear time.

## Check if an array represents min heap or not

Given an array of integers, check if it represents min heap or not.

## Heap Sort Algorithm – Overview & C, C++ and Java Implementation

Given an array of integers, sort it using heap sort algorithm in C, C++ and Java.

## 3-partition problem extended | Print all partitions

Given an array of positive integers which can be partitioned into three disjoint subsets having same sum and that covers S, print the partitions.

## Recursive Program to Calculate Factorial of a Number

Write a recursive C/C++ and java program to calculate factorial of a given positive number.   The factorial of a non-negative integer n is the product of all positive integers less than or equal to n. It is denoted by n!. There are n! different ways to arrange n distinct objects into a sequence.

## Determine if a given string is palindrome or not

Write a program to determine if a given string is palindrome or not. A palindromic string is a string that remains the same when its characters are reversed. Like “ABCBA”, for example, it is “symmetrical”.

## Efficiently print factorial series in a given range

Write a C program to efficiently print factorial series in a given range.

## Determine if a given number is a palindrome or not

Write a program to determine if a given number is a palindrome or not. A palindromic number is a number that remains the same when its digits are reversed.

## Trie Implementation in C | Insertion, Searching and Deletion

Implement insert, search and delete operations on Trie Data structure. Assume that input consist of lowercase letters a-z.

## Disjoint-Set Data Structure (Union Find Algorithm)

Explain the working of disjoint-set data structure and efficiently implement it.   Problem: We have some number of items. We are allowed to merge any two items to consider them equal. At any point, we are allowed to ask whether two items are considered equal or not.

## Depth First Search (DFS) | Iterative & Recursive Implementation

Depth first search (DFS) is an algorithm for traversing or searching tree or graph data structures. One starts at the root (selecting some arbitrary node as the root in the case of a graph) and explores as far as possible along each branch before backtracking.