I need help the Data Structure in c error infixToPostfix her

I need help the Data Structure in c++ error infixToPostfix

here is my source code

#include
#include
#include
using namespace std;
template
class infixToPostfix
{
   string infx;
   string pfx;
public:
   infixToPostfix(string);
   void getlnfix(string);
   void showlnfix();
   void convertToPostfix(stack&);
   bool precedence(char, char);
   void showPostfix();
};
template
infixToPostfix::infixToPostfix(string str)
{
   getlnfix(str);
   pfx = \"\";
}
template
void infixToPostfix::getlnfix(string str)
{
   infx = str;
}
template
void infixToPostfix::showlnfix()
{
   cout << \"infix expression : \" << infx << endl;
}
template
void infixToPostfix::convertToPostfix(stack &objStack)
{
   int i = 0;
   while (infx[i] !=\'/0\')
   {
       switch (infx[i])
       {
       case\'A\':
       case\'B\':
       case\'C\':
       case\'D\':
       case\'E\':
       case\'F\':
       case\'G\':
       case\'H\':
           pfx += infx[i];
           break;
       case\'(\':
           objStack.push(infx[i]);
           break;
       case\')\':
           while (objStack.top() !=\'(\')
           {
               pfx += objStack.top();
               objStack.pop();
           }
           if (objStack.top() == \'(\')
               objStack.pop();
           break;
       case\'+\':
       case\'-\':
       case\'*\':
       case\'/\':
           while (precedence(objStack.top(),infx[i]))
           {
               pfx += objStack.top();
               objStack.pop();
           }
           objStack.push(infx[i]);
           break;
       }
       i++;
   }
}
template
bool infixToPostfix::precedence(char opr1, char opr2)
{
   switch (opr1)
   {
   case\'+\':
       if (opr2 == \'+\' || opr2 == \'-\')
           return true;
       else if (opr2 == \'*\' || opr2 == \'/\')
           return false;
       break;
   case\'-\':
       if (opr2 == \'+\' || opr2 == \'-\')
           return true;
       else if (opr2 == \'*\' || opr2 == \'/\')
           return false;
       break;
   case\'*\':
       if (opr2 == \'+\' || opr2 == \'-\')
           return false;
       else if (opr2 == \'*\' || opr2 == \'/\')
           return true;
       break;
   case\'/\':
       if (opr2 == \'+\' || opr2 == \'-\')
           return false;
       else if (opr2 == \'*\' || opr2 == \'/\')
           return true;
       break;
   }
}
template
void infixToPostfix::showPostfix()
{
   cout << \"Equivalent Postfix expression :\" << pfx ;
}

//////////////////////////////////////////

template
int main()
{
   string str;
   cout << \"Enter the infix expression: \";
   cin >> str;
   infixToPostfix obj = new infixToPostfix(str);
   stack objStack;
   objStack.initializeStack();
   obj.convertToPostfix(objStack);
   obj.showPostfix();
   return 0;

Solution

Here is the error free code for you:

#include<iostream>
#include<cstring>
#include<stack>
using namespace std;
template<class T>
class infixToPostfix
{
string infx;
string pfx;
public:
infixToPostfix(string);
void getlnfix(string);
void showlnfix();
void convertToPostfix(stack<T>&);
bool precedence(char, char);
void showPostfix();
};
template<class T>
infixToPostfix<T>::infixToPostfix(string str)
{
getlnfix(str);
pfx = \"\";
}
template<class T>
void infixToPostfix<T>::getlnfix(string str)
{
infx = str;
}
template<class T>
void infixToPostfix<T>::showlnfix()
{
cout << \"infix expression : \" << infx << endl;
}
template<class T>
void infixToPostfix<T>::convertToPostfix(stack<T> &objStack)
{
int i = 0;
while (infx[i] !=\'\\0\')
{
switch (infx[i])
{
case\'A\':
case\'B\':
case\'C\':
case\'D\':
case\'E\':
case\'F\':
case\'G\':
case\'H\':
pfx += infx[i];
break;
case\'(\':
objStack.push(infx[i]);
break;
case\')\':
while (objStack.top() !=\'(\')
{
pfx += objStack.top();
objStack.pop();
}
if (objStack.top() == \'(\')
objStack.pop();
break;
case\'+\':
case\'-\':
case\'*\':
case\'/\':
while (precedence(objStack.top(),infx[i]))
{
pfx += objStack.top();
objStack.pop();
}
objStack.push(infx[i]);
break;
}
i++;
}
}
template<class T>
bool infixToPostfix<T>::precedence(char opr1, char opr2)
{
switch (opr1)
{
case\'+\':
if (opr2 == \'+\' || opr2 == \'-\')
return true;
else if (opr2 == \'*\' || opr2 == \'/\')
return false;
break;
case\'-\':
if (opr2 == \'+\' || opr2 == \'-\')
return true;
else if (opr2 == \'*\' || opr2 == \'/\')
return false;
break;
case\'*\':
if (opr2 == \'+\' || opr2 == \'-\')
return false;
else if (opr2 == \'*\' || opr2 == \'/\')
return true;
break;
case\'/\':
if (opr2 == \'+\' || opr2 == \'-\')
return false;
else if (opr2 == \'*\' || opr2 == \'/\')
return true;
break;
}
return false;
}
template<class T>
void infixToPostfix<T>::showPostfix()
{
cout << \"Equivalent Postfix expression :\" << pfx ;
}
//////////////////////////////////////////

int main()
{
string str;
cout << \"Enter the infix expression: \";
cin >> str;
infixToPostfix<char> obj(str);
stack<char> objStack;
//objStack.initializeStack();
obj.convertToPostfix(objStack);
obj.showPostfix();
return 0;
}   

I need help the Data Structure in c++ error infixToPostfix here is my source code #include #include #include using namespace std; template class infixToPostfix
I need help the Data Structure in c++ error infixToPostfix here is my source code #include #include #include using namespace std; template class infixToPostfix
I need help the Data Structure in c++ error infixToPostfix here is my source code #include #include #include using namespace std; template class infixToPostfix
I need help the Data Structure in c++ error infixToPostfix here is my source code #include #include #include using namespace std; template class infixToPostfix
I need help the Data Structure in c++ error infixToPostfix here is my source code #include #include #include using namespace std; template class infixToPostfix

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site