だから私は、ユーザーに後置式を求めるクラスのためにしなければならないこの逆ポーランド記法プログラムを持っています。
たとえば、ユーザーが ab + cd - * と入力すると、プログラムは最後にそれを次のように変換します。
((a + b) * (c - d)) しかし、これは私の問題ではありません。
だから私の質問は、一度に 1 つの要素を 1 つの文字列全体である ab + cd - * をスタックにプッシュする方法です。教授はまた、入力が文字列に格納されると、各要素の間にスペースがあると述べました。
出力は ab + cd - * のようになり、1 つのスタックを占めます。
ab + cd - * である必要があり、7 スタックを占めます。
クラスには、プログラムを作成するためのスケルトンとして使用している基本的なコードがいくつかありました。可能であれば、必要なものに合わせて変更したいと考えています。
#include <iostream>
#include <string>
using namespace std;
typedef string stack_element;
class stack_node
{
public:
stack_element data;
stack_node *next;
};
class stack
{
public:
stack();
~stack();
stack_element & top();
void pop();
void push(const stack_element &);
void print();
private:
stack_node *s_top;
};
stack::stack()
{
s_top=0;
cout<<"Inside Default Constructor\n";
}
void stack::push(const stack_element & item)
{
cout<<"Inside push \n";
stack_node *p = new stack_node;
p->data = item;
p->next = 0;
if (s_top == 0)
{
s_top = p;
}
else
{
p->next = s_top;
s_top = p;
}
}
int main()
{
string input;
cout<<"enter an input:";
cin>>input;
S.push(input);
}