Question:

CAN ANY 1 HELO ME OUT OF INFIX TO PREFIX CONVERSION SOURCE CODE OF C++

by Guest8593  |  8 years, 8 month(s) ago

0 LIKES UnLike

CAN ANY 1 HELO ME OUT OF INFIX TO PREFIX CONVERSION SOURCE CODE OF C++

 Tags: C++, code, Conversion, helo, infix, prefix, source

   Report

1 ANSWERS

  1. paafamily
    Infix To Prefix Conversion

    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    #define MAX 15
    #define true 1
    #define false 0

    /*Structure Decvlaration*/
    typedef struct
    {
    char data[MAX];
    char top;
    }STK;

    /*Function Declarations*/
    void input(char str[]);
    void intopre(char str1[],char pre[]);
    void intopost(char str1[],char post[]);
    int isoperand(char sym);
    int prcd(char sym);
    void push(STK *s1,char elem);
    int pop(STK *s1);
    int empty(STK *s2);
    int full(STK *s2);
    void dis(char str[]);

    void main()
    {
    STK s;
    int cs,ans;
    char str[MAX],pre[MAX],post[MAX];
    clrscr();
    do                                                   /*Using Do-while Loop*/
    {
    clrscr();
    printf("
    -----Program for Expressions-----");
    printf("
    Input The String:");
    printf("
    MENU:
    ");
    printf("1.Infix to Prefix
    ");
    printf("2.Infix to Postfix");
    printf("
    3.Exit");
    cs=getche();

    switch(cs)  /*Using Switch Case*/
    {
    case 1:
    intopre(str,pre);
    break;
    case 2:
    intopost(str,post);
    break;
    case 3:
    break;
    default:
    printf("
    Enter a Valid Choise!"); /*Default Case*/
    break;
    }
    printf("
    Do you wish to Continue?(y/n)");
    ans=getche();
    }while(ans=='y'||ans=='Y');   /*Condition for Do-while loop*/

    getch();
    }

    /*To Input String*/
    void input(char str)
    {
    printf("Enter the Infix String:");
    scanf("%s",str);
    }

    /*To Covert Infix To Prefix*/
    void intopre(STK s1,char str1[],char pre[])
    {
    int len,flag;
    len=strlen(str1);
    int check=0,cnt=len-1,pos=0;
    char elem;

    while(cnt>=0)  /*while condition*/
    {
    flag=0;
    if(isoperand(str1[cnt]))   /*Checking for Operand*/
    {
    printf("%c",str1[cnt]);
    cnt--;
    pos++;
    }
    else
    {
    check=prcd(str1[cnt]);
    while(check==false)
    {
    pre[pos]=str1[cnt];
    flag=1;
    pos++;
    cnt--;
    }
    if(flag==0)
    {
    elem=pop(&s1);
    printf("%c",elem);
    }
    }

    }
    }

    /*To Convert Infix To Postfix*/
    void intopost(STK s1,char str1[],char post[])
    {
    int len;
    len=strlen(str1);
    int check=0,cnt=len-1,pos=0;

    }

    /*To Check For Operand*/
    int isoperand(char sym)
    {
    if('A'<sym<'Z'||'a'<sym<'z')
    return(true);
    return(false);
    }

    /*To Check The Precedence*/
    int prcd(char sym)
    {

    }

    /*To Display String*/
    void dis(char str[])
    {


    }

    /*Push Function Definition*/
    void push(STK *s1,char elem)
    {
    if(!full(s1))
    {
    s1->top++;                  /*Incrementing top*/
    s1->data[s1->top]=elem;     /*Storing element*/
    }
    else
    printf("
    Stack is Full!");
    }

    /*Full Function Definition*/
    int full(STK *s2)
    {
    if(s2->top==MAX)    /*Condition for Full*/
    return(true);
    return(false);
    }

    /*Pop Function Definition*/
    int pop(STK *s1)
    {
    char elem;
    if(!empty(s1))
    {
    elem=s1->data[s1->top]; /*Storing top stack element in elem*/
    s1->top--;              /*Decrementing top*/
    return(elem);
    }
    return(false);
    }

    /*Empty Function Definition*/
    int empty(STK *s2)
    {
    if(s2->top==-1)         /*Condition For Empty*/
    return(true);
    return(false);
    }

Sign In or Sign Up now to answser this question!

Question Stats

Latest activity: 10 years, 7 month(s) ago.
This question has 1 answers.

BECOME A GUIDE

Share your knowledge and help people by answering questions.