我在写一个C++代码来执行Reverse Polish Notation math。对于这一点,我有有一个布尔方法弹出(值)如果在if语句中实现,函数将存储值吗?
bool pop(int &value) {
if (isEmpty()) {
return false;
} else {
value = stack[topIndex];
return true;
}
};
在堆栈顶部的值被存储在值,然后从堆栈的删除的堆栈类。如果堆栈为空,则此弹出方法返回false,否则返回true。
我的问题是,如果我使用流行方法是这样的:
int a, b;
if (!stack.pop(a) || !stack.pop(b)) {
cout << "Error: stack is empty: << endl;
}
其中两次返回真,将堆栈每个箱子的顶值存储在一和b还是需要执行以外的方法if声明?
谢谢。是的,我的流行方法并没有删除顶部元素。我会解决这个问题。 – 2015-02-11 20:16:23
@JordanTaylor IMO在编写任何新的数据结构之前,最好有5分钟看看现有的数据结构。如果你使用C++,我会说你应该先看看std库的数据结构。然后你可以抓住常用术语。什么是流行什么是顶级的。 – Doonyx 2015-02-11 22:35:48