Posts

Showing posts from August, 2019

CODE FOR TOWER OF HANOI

Image
#include<stdio.h> #include<conio.h> void hanoi(int n,char s,char m,char d); void main() {  int n;  char s='a',d='c',m='b';  clrscr();  printf("enter number of disc :");  scanf("%d",&n);  hanoi(n,s,m,d);  getch(); } void hanoi(int n,char s,char m,char d) {   if(n!=0)   {    hanoi(n-1,s,d,m);    printf("Move %d from %c to %c\n",n,s,d);    hanoi(n-1,m,s,d);   } }

CODE FOR FACTORAIL (RECURSION)

Image
#include<stdio.h> #include<conio.h> void main() {  int a,f;  clrscr();  printf("Enter the number : ");  scanf("%d",&a);  f=fact(a);  printf("The factorial of %d is %d",a,f);  getch(); } int fact(n) {  int f=1;   if(n!=0)   {    f=n*fact(n-1);   }   return f; }

CODE FOR INFIX TO POSTFIX CONVERSION AND EVALUATE USING STACK

Image
#include<stdio.h> #include<string.h> #include<math.h> #define oper(x) (x=='+' || x=='-' || x=='*' || x=='/') char in[30], post[30], stack[30]; int top=-1; void push(char x) { stack[++top]=x; } char pop() { return stack[top--]; } int precedence(char c) { if (c=='+' || c=='-') return 1; if (c=='*' || c=='/') return 2; if (c=='(') return 3; } void main() { char c; int l,i,j=0,st1[20],k,h,f,eval,s,N;   clrscr();         printf("Enter the infix expression : "); scanf("%s",&in); l=strlen(in); for(i=0;i<=l;i++) { if(oper(in[i])) { post[j++]=' '; while(precedence(in[i])<precedence(stack[top])) //any problem here? { post[j++]=stack[top]; pop(); post[j++]=' '; } push(in[i]); } else if(in[i]=='\0') { while(top!=-1) { post[j++]=' &

CODE FOR INFIX TO POSTFIX CONVERSION USING STACK

Image
#include<stdio.h> #include<conio.h> char stack[20]; int top = -1; void push(char x) {     stack[++top] = x; } char pop() {     if(top == -1)         return -1;     else         return stack[top--]; } int priority(char x) {     if(x == '(')         return 0;     if(x == '+' || x == '-')         return 1;     if(x == '*' || x == '/')         return 2; } void main() {     char exp[20];     char *e, x;     clrscr();     printf("Enter the expression :: ");     scanf("%s",exp);     e = exp;     while(*e != '\0')     {         if(isalnum(*e))             printf("%c",*e);         else if(*e == '(')             push(*e);         else if(*e == ')')         {             while((x = pop()) != '(')                 printf("%c", x);         }         else         {             while(priority(stack[top]) >= priority(*e))      

Code For STACK IMPLEMENTATION.

Image
#include<stdio.h> #include<conio.h> void push(int s[],int max,int *top,int x) {   if(*top>=max-1)     printf("stack overflow");   else     {*top=*top+1;     s[*top]=x; } } int pop(int s[],int *top) {  if(*top<=-1)  {   printf("stack underflow");   return 1;  }  else  {   int item;   item=s[*top+1];   *top=*top-1;   return item; } } int peep(int s[],int *top,int max) {  if((*top+1-max)<0)    return 0;   return s[(*top+1-max)]; } void change(int s[],int *top,int max,int m) {  if((*top+1-max)<0)   printf("stack underflow");   else    s[(*top+1-max)]=m; } int isFull(int *top,int max) {  if(*top>=max-1)    return 1;  else   return 0; } int isEmpty(int *top) {  if(*top<=-1)   return 1;  else   return 0; } void display(int s[],int *top) {  int i;  if(*top==-1)    printf("stack empty");  else  {   printf("stack:");   for(i=*top;i>=0;i--)    printf(&quo

Check Input String in form xCy where x is string and y is Reverse of x.

Image
#include<stdio.h> #include<conio.h> #include<string.h> void push(int *top,char s[],char x,int max); int pop(int *top,char s[]); void push(int *top,char s[],char x,int max) {   if(*top>=max-1)   {    printf("stack overflow \n");   }   else   {    *top=*top+1;    s[*top]=x;   } } int pop(int * top,char s[]) {   if(*top<=-1)   {    printf("stack underflow\n");    return 1;   }   else   {    int item=s[*top];    *top=*top-1;    return item;   } } void main() {  int *top,max=10,i,flag,len;  char s[10],x[10],a;  *top=-1;  clrscr();  printf("enter string in format xCy:");   // x is string and y is reverse of x.  gets(x);  len=strlen(x);  for(i=0;x[i]!='C';i++)  {    push(top,s,x[i],max);  }  i++;  while(x[i]!='\0')  {   a=pop(top,s);   if(a!=x[i])   {     flag=1;     break;   }   else   {    flag=0;   }   i++;  }  if(flag==0)  {   printf("Correct");  }  else  {   printf("Not Correct")

Code For Check Balance Parentheses using C-Programming.

Image
#include<stdio.h> #include<conio.h> void push(int *top,char s[],char exp,int max); int pop(int *top,char s[]); int isEmpty(int *top); int isEmpty(int *top) {    if(*top<=-1)      {return 1;}    else      { return 0;} } void push(int *top,char s[],char exp,int max) {   if(*top>=max-1)    {printf( "Given expression is Not Balanced Parenthese" );    }     else    {*top=*top+1;       s[*top]=exp;     } } int pop(int  *top,char s[]) {   if(*top<=-1)    { printf( "Given expression is Not Balanced Parenthese" );        return 1; }   else     {        int item=s[*top];       *top=*top-1;        return item;     } } void main() {   int *top,max=10,valid=0,len,i;   char exp[10],s[10];   *top=-1;    clrscr();    printf("Enter Expression : ");    gets(exp);    len=strlen(exp);    for(i=0;i<len;i++)    {       if(exp[i]=='(' || exp[i]=='{' || exp[i]=='[')        {           p