尝试在堆栈中递归检测负片
Trying to recursively detect negatives in a stack?
我正在尝试编写一个函数,该函数递归地检查堆栈中的负数,然后返回计数。到目前为止,该功能未按预期工作。我认为循环结构有问题。任何帮助都将不胜感激!
size_t r_appr(stack<int> mystack){
int count=0;
if(!mystack.empty()){
if(mystack.top()<0){
count+=1;
}
mystack.pop();
count+=r_appr(mystack);
}
return count;
}
我同意@Greg Hewgill。
将CCD_ 1置于函数之外是正常的。
int main()
{
stack<int> s;
for (c=0; c<5; c++)
s.push(c*-1);
cout << r_appr(s);
}
将CCD_ 2放入递归函数中是一个异常。
但如果您仍然想这样做,可以使用global variable
或#define
来实现。
以下是使用#define:的示例
#define stack_size 4
void r_appr(stack<int> mystack){
int count=0;
if(!mystack.empty()){
if(mystack.top()<0){
count+=1;
}
mystack.pop();
count+=r_appr(mystack);
if (mystack.size()==stack_size)
cout << count << endl;
}
}
int main()
{
stack<int> s;
for (c=0; c<=stack_size; c++)
s.push(c*-1);
r_appr(s);
}
如果你希望你的堆栈大小是一个变量,使用global variable
可以做到这一点。(但这在面向对象编程中是不合适的。)
相关文章:
- 通过递归进行因子分解
- 递归函数计算序列中的平方和(并输出过程)
- 使用递归的数组的最小值.这是怎么回事
- 递归列出所有目录中的C++与Python与Ruby的性能
- 递归计数给定目录的文件和所有目录
- 如何在BST的这个简单递归实现中消除警告
- C++:正在检查LinkedList中的回文-递归方法-错误
- 递归模板化函数不能分配给具有常量限定类型"const tt &"的变量"state"
- 递归无序映射
- TSP递归解的迭代形式
- 如何在Elixir中调用递归函数并行
- 返回递归调用和仅递归调用的区别
- 数组元素打印的递归方法
- 使用非递归 DFS 检测有向图中的周期
- C 递归以在网格的行和列中检测重复
- 用于成员函数检测的递归type_traits
- 尝试使用C++实现检测字符串中回文的递归版本.在这里遇到了一些麻烦
- 尝试在堆栈中递归检测负片
- QWidget::重新绘制:更新进度条时检测到递归重新绘制
- QWidget::repaint:使用指针检测到递归重绘