gpt4 book ai didi

c - 后缀表达式求值 : how much stack memory is required?

转载 作者:太空宇宙 更新时间:2023-11-04 08:46:26 27 4
gpt4 key购买 nike

我觉得这是一个非常愚蠢的问题,但我找不到答案。

假设我们要计算一个后缀表达式,其中包含具有不同元数的各种运算符(例如 ADD、SUB 和其他可以采用 N 个操作数的运算符)。评估使用这些运算符构建的后缀表达式需要多少堆栈内存(根据元素数量)?

有没有办法确定所需的内存量?

编辑:看来这个问题有点模棱两可。我要问的是,这种操作需要的堆栈元素的最大数量是多少?它甚至可以计算出来还是可以无限多并且取决于表达式?

最佳答案

这取决于表达式。二进制表达式的经典递归解决方案类似于(在 C 代码中):

int maxstack(expression *exp) {
if (IsLeaf(exp)) {
return 0;
} else {
int left_stack = maxstack(exp->left);
int right_stack = maxstack(exp->right);
if (left_stack == right_stack)
return left_stack + 1;
else if (left_stack > right_stack)
return left_stack;
else
return right_stack;
}
}

将其扩展到三元/二元表达式相对简单

关于c - 后缀表达式求值 : how much stack memory is required?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21517294/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com