Stack
Stack
Stack
Code:
#include<stdio.h>
#include<string.h>
#include<limits.h>
#include<stdlib.h>
# define MAX 100
int isFull() {
return top == MAX - 1;
}
int isEmpty() {
return top == -1;
}
int pop() {
if (isEmpty())
return INT_MIN;
return stack[top--];
}
int peek(){
if (isEmpty())
return INT_MIN;
return stack[top];
}
return (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z');
}
case '*':
case '/':
return 2;
case '^':
return 3;
}
return -1;
}
}
else
{
while (!isEmpty(stack) && precedence(expression[i]) <= precedence(peek(stack)))
expression[++j] = pop(stack);
push(expression[i]);
}
while (!isEmpty(stack))
expression[++j] = pop(stack);
expression[++j] = '\0';
temp[j--]='\0';
while(exp[i]!='\0')
{
temp[j] = exp[i];
j--;
i++;
}
strcpy(exp,temp);
}
void brackets(char* exp){
int i = 0;
while(exp[i]!='\0')
{
if(exp[i]=='(')
exp[i]=')';
else if(exp[i]==')')
exp[i]='(';
i++;
Page |4
}
}
void InfixtoPrefix(char *exp){
reverse(exp);
brackets(exp);
getPostfix(exp);
reverse(exp);
}
int main()
{
printf("The infix is: ");
return 0;
}
Output:
Page |5
Code:
#include <stdio.h>
int main()
{
int x = 2;
int n = 3;
Output:
Page |6
Q.3- Write a program for conversion of Decimal number into equivalent binary number
using stack.
Code:
#include<stdio.h>
#include<stdlib.h>
#define MAX 50
int main()
{
int num;
printf("Enter an integer : ");
scanf("%d",&num);
printf("Binary Equivalent is : ");
DecToBin(num);
return 0;
Output:
Page |8
Q.4- Write a program to solve the tower of Hanoi problem using stack.
Code:
#include<stdio.h>
void TOH(int n,char x,char y,char z) {
if(n>0) {
TOH(n-1,x,z,y);
printf("\n%c to %c",x,y);
TOH(n-1,z,y,x);
}
}
int main() {
int n=3;
TOH(n,'A','B','C');
}
Output: