Tuesday, 19 December 2017

Write C++ code to convert a decimal number to its binary equivalent using Stack ADT.

As stack is a LIFO data structure, we can retrieve the content of stack in the reverse order of storing. This property of stack is used in this application. To convert a decimal number to its binary equivalent, we repeatedly divide the decimal number by 2 and the remainder of division (either 0 or 1) is pushed in to the stack, until the number becomes zero. When the division is completed, pop out all the elements from the stack, which will give the binary equivalent.
Algorithm:
/ * This algorithm outputs the binary equivalent of a decimal number, num. */
/* Stack ADT is defined in “stackADT.h” */

#include “stackADT.h”
void convert(integer num)
{
stack<integer> stack1;
int rem,n,y,n=num;
while(n>0)
{
//push remainders to stack.
rem = n%2;
stack1.push(rem);
n=n/2;
}
while(!stack1.isEmpty)
{
//pop all remainders from stack
y=stack1.pop();
cout<<y;
}
}


Thanks
Mukesh Rajput

No comments:

Post a Comment

Thanks
Mukesh Rajput