Spread the word.

Share the link on social media.

Share
  • Facebook
Have an account? Sign In Now

Sign Up

Have an account? Sign In Now

Sign In

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

Sorry, you do not have permission to ask a question, You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here
Sign InSign Up

SIKSHAPATH

SIKSHAPATH Navigation

  • Home
  • Questions
  • Blog
    • Computer Science(CSE)
    • NPTEL
    • Startup
  • Shop
    • Internshala Answers
Search
Ask A Question

Mobile menu

Close
Ask A Question
  • Home
  • Questions
  • Blog
    • Computer Science(CSE)
    • NPTEL
    • Startup
  • Shop
    • Internshala Answers
Home/ Questions/Q 940
Next
In Process

SIKSHAPATH Latest Questions

Bluedragon
  • 0
  • 0
Bluedragon
Asked: October 20, 20212021-10-20T21:56:50+05:30 2021-10-20T21:56:50+05:30In: Data Structure

Infix to prefix

  • 0
  • 0

Write a program to convert the expression “a+b” into “+ab”.

write a program to convert the expression “a+b” into “ab+”.
  • 1 1 Answer
  • 161 Views
  • 0 Followers
  • 0
Answer
Share
  • Facebook

    1 Answer

    • Voted
    • Oldest
    • Recent
    1. Professor
      Professor
      2021-11-19T00:34:08+05:30Added an answer on November 19, 2021 at 12:34 am
      // CPP program to convert infix to prefix
      
      #include <bits/stdc++.h>
      
      using namespace std;
      
      
      
      
      bool isOperator(char c)
      
      {
      
       return (!isalpha(c) && !isdigit(c));
      
      }
      
      
      
      
      int getPriority(char C)
      
      {
      
       if (C == '-' || C == '+')
      
        return 1;
      
       else if (C == '*' || C == '/')
      
        return 2;
      
       else if (C == '^')
      
        return 3;
      
       return 0;
      
      }
      
      
      
      
      string infixToPostfix(string infix)
      
      {
      
       infix = '(' + infix + ')';
      
       int l = infix.size();
      
       stack<char> char_stack;
      
       string output;
      
      
      
      
       for (int i = 0; i < l; i++) {
      
      
      
      
        // If the scanned character is an
      
        // operand, add it to output.
      
        if (isalpha(infix[i]) || isdigit(infix[i]))
      
         output += infix[i];
      
      
      
      
        // If the scanned character is an
      
        // ‘(‘, push it to the stack.
      
        else if (infix[i] == '(')
      
         char_stack.push('(');
      
      
      
      
        // If the scanned character is an
      
        // ‘)’, pop and output from the stack
      
        // until an ‘(‘ is encountered.
      
        else if (infix[i] == ')') {
      
         while (char_stack.top() != '(') {
      
          output += char_stack.top();
      
          char_stack.pop();
      
         }
      
      
      
      
         // Remove '(' from the stack
      
         char_stack.pop();
      
        }
      
      
      
      
        // Operator found
      
        else
      
        {
      
         if (isOperator(char_stack.top()))
      
         {
      
          if(infix[i] == '^')
      
          {
      
           while (getPriority(infix[i]) <= getPriority(char_stack.top()))
      
           {
      
            output += char_stack.top();
      
            char_stack.pop();
      
           }
      
           
      
          }
      
          else
      
          {
      
           while (getPriority(infix[i]) < getPriority(char_stack.top()))
      
           {
      
            output += char_stack.top();
      
            char_stack.pop();
      
           }
      
           
      
          }
      
      
      
      
          // Push current Operator on stack
      
          char_stack.push(infix[i]);
      
         }
      
        }
      
       }
      
       while(!char_stack.empty()){
      
        output += char_stack.top();
      
        char_stack.pop();
      
       }
      
       return output;
      
      }
      
      
      
      
      string infixToPrefix(string infix)
      
      {
      
       /* Reverse String
      
       * Replace ( with ) and vice versa
      
       * Get Postfix
      
       * Reverse Postfix * */
      
       int l = infix.size();
      
      
      
      
       // Reverse infix
      
       reverse(infix.begin(), infix.end());
      
      
      
      
       // Replace ( with ) and vice versa
      
       for (int i = 0; i < l; i++) {
      
      
      
      
        if (infix[i] == '(') {
      
         infix[i] = ')';
      
         i++;
      
        }
      
        else if (infix[i] == ')') {
      
         infix[i] = '(';
      
         i++;
      
        }
      
       }
      
      
      
      
       string prefix = infixToPostfix(infix);
      
      
      
      
       // Reverse postfix
      
       reverse(prefix.begin(), prefix.end());
      
      
      
      
       return prefix;
      
      }
      
      
      
      
      // Driver code
      
      int main()
      
      {
      
       string s = ("a+b");
      
       cout << infixToPrefix(s) << std::endl;
      
       return 0;
      
      }
        • 0
      • Reply
      • Share
        Share
        • Share on WhatsApp
        • Share on Facebook
        • Share on Twitter
        • Share on LinkedIn

    Leave an answer
    Cancel reply

    You must login to add an answer.

    Forgot Password?

    Need An Account, Sign Up Here

    Sidebar

    store ads

    Stats

    • Questions 1k
    • Answers 1k
    • Posts 149
    • Best Answers 89
    • This Free AI Tool Translates Entire Books in Minute !
    • AI News: 🎬 Hollywood’s AI Studios, 🎓 OpenAI’s Latest Gift to Educators, 🚚 Class8 Bags $22M, 🧠 Google Gemini’s Memory Upgrade
    • AI NEWS: Legal Action Against OpenAI, $16M Paid, & Elon Musk’s Praise from Investor 🤖💰📑 | AI Boosts Cloud Seeding for Water Security 🌱💧
    • AI News: 🎬AI Video Tool Scam Exposed🤯, 🛰️ AI-Powered Drones to Ukraine 😱, Google’s $20M AI Push, Sam Altman Joins SF’s Leadership Team
    • AI News: 🤝 Biden Meets Xi on AI Talks, 💡 Xavier Niel’s Advice for Europe, ♻️ Hong Kong’s Smart Bin Revolution, 🚀 AI x Huawei

    Explore

    • Recent Questions
    • Questions For You
    • Answers With Time
    • Most Visited
    • New Questions
    • Recent Questions With Time

    Footer

    SIKSHAPATH

    Helpful Links

    • Contact
    • Disclaimer
    • Privacy Policy Notice
    • TERMS OF USE
    • FAQs
    • Refund/Cancellation Policy
    • Delivery Policy for Sikshapath

    Follow Us

    © 2021-24 Sikshapath. All Rights Reserved

    Insert/edit link

    Enter the destination URL

    Or link to existing content

      No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.