Implementing Tower of Hanoi Problem in Java

The Tower of Hanoi is a mathematical game or puzzle. It consists of three rods, and a number of disks of different sizes which can slide onto any rod. The puzzle starts with the disks in a neat stack in ascending order of size on one rod, the smallest at the top, thus making a conical shape.

The objective of the puzzle is to move the entire stack to another rod, obeying the following simple rules:

1. Only one disk can be moved at a time.
2. Each move consists of taking the upper disk from one of the stacks and placing it on top of another stack i.e. a disk can only be moved if it is the uppermost disk on a stack.
3. No disk may be placed on top of a smaller disk.

With three disks, the puzzle can be solved in seven moves. The minimum number of moves required to solve a Tower of Hanoi puzzle is 2n – 1, where n is the number of disks.

(Via Wikipedia)

Implementation of Stack in Java

A stack is an abstract data type that serves as a collection of elements, with two principal operations:

1. push adds an element to the collection
2. pop removes the last element that was added.

It is a LIFO (Last In First Out) kind of data structure. That means the element which added at last will be taken out first.

Continue reading Implementation of Stack in Java

Implementing Singly Linked List in Java

Singly linked lists contain nodes which have a data field as well as a ‘next’ field, which points to the next node in line of nodes. Operations that can be performed on singly linked lists include insertion, deletion and traversal.

(via Wikipedia)

Java Implementation of Queue using Linked List

Here is java implementation of queue using linked list.

Java Program to Convert Infix Notation to PostFix Notation

Infix notation is the notation commonly used in arithmetical and logical formulae and statements. It is characterized by the placement of operators between operands – “infixed operators” – such as the plus sign in “2 + 2”.

Reverse Polish notation (RPN) or PostFix Notation is a mathematical notation in which every operator follows all of its operands such as the plus sign in “2 2 +”.

Continue reading Java Program to Convert Infix Notation to PostFix Notation

Implementing Graph Traversing Algorithms in Java

Graph traversal is the problem of visiting all the nodes in a graph in a particular manner, updating and/or checking their values along the way. There are two methods for graph traversal, they are as follows.

1. Depth-first search: DFS visits the child nodes before visiting the sibling nodes; that is, it traverses the depth of any particular path before exploring its breadth.
2. Breadth-first search: FS visits the parent nodes before visiting the child nodes.
Continue reading Implementing Graph Traversing Algorithms in Java