#include <iostream>
#include <vector>
#include <string>
#include <cstdio>
#include <cctype>
using namespace Std;
void print (vector<string> &);
void transform (vector<string>&,vector<string>&);
int main ()
{
cout<< "Please enter the Arabic numerals \ n";
Vector<string> _in_vec;
char tmp;
string S;
StringStream stream;
while ((TMP = GetChar ())! = ' \ n ')
{
if (tmp = = ' + ' | | tmp== '-' | | tmp== ' * ' | | tmp== '/' | | tmp== ' (' | | | tmp== ') ')
{
if (!s.empty ())
{
_in_vec.push_back (s);
S.clear ();
}
stream<<tmp;
stream>>s;
Stream.clear ();
_in_vec.push_back (s);
S.clear ();
}
else if (tmp = = ")
{
if (!s.empty ())
{
_in_vec.push_back (s);
S.clear ();
}
}
else if (IsDigit (TMP))
{
s + = tmp;
}
}
if (!s.empty ())
{
_in_vec.push_back (s);
S.clear ();
}
Print (_IN_VEC);
Vector<string> _out_vec;
Transform (_in_vec,_out_vec);
Print (_OUT_VEC);
return 0;
}
void print (Vector<string> & _vec)
{
cout<< "\ n";
for (int i = 0; i < _vec.size (); i++)
cout<<_vec[i];
}
void transform (Vector<string>&_in_vec,vector<string>&_out_vec)
{
vector<string> tmp;
for (int i = 0;i! = _in_vec.size (); i++)
{
if (IsDigit (_in_vec[i]). at (0)))
_out_vec.push_back (_in_vec[i]);
else if (_in_vec[i] = = ")")
{
while (!tmp.empty () && tmp.back ()! = "(")
{
_out_vec.push_back (Tmp.back ());
Tmp.pop_back ();
}
if (!tmp.empty ())
Tmp.pop_back ();
}
else if (_in_vec[i] = = "+" | | _in_vec[i] = = "-")
{
if (!tmp.empty () && (tmp.back () = = "*" | | tmp.back () = = "/"))
{
_out_vec.push_back (Tmp.back ());
Tmp.pop_back ();
}
if (!tmp.empty () && (tmp.back () = = "+" | | tmp.back () = = "-"))
{
_out_vec.push_back (Tmp.back ());
Tmp.pop_back ();
}
Tmp.push_back (_in_vec[i]);
}
else if (_in_vec[i] = = "*" | | _in_vec[i] = = "/")
{
if (!tmp.empty () && (tmp.back () = = "*" | | tmp.back () = = "/"))
{
_out_vec.push_back (Tmp.back ());
Tmp.pop_back ();
}
Tmp.push_back (_in_vec[i]);
}
Else
Tmp.push_back (_in_vec[i]);
}
while (!tmp.empty ())
{
_out_vec.push_back (Tmp.back ());
Tmp.pop_back ();
}
}
Data structure-sequence transfer