gpt4 book ai didi

java - 使用递归算法为中缀符号添加前缀

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:47:32 25 4
gpt4 key购买 nike

我是新来的,不知何故被困住了。我创建了一个递归算法,它使用一个全局变量来记住他进行递归调用的位置,我试图摆脱这个变量,因为对我来说这似乎不是一个好的解决方案。

有没有机会摆脱这个全局变量?我无法调整方法头,因此方法的接口(interface)是固定的。

在这里你可以看到我的代码:

static int pos = -1;
static boolean writeInfix(char[] expr) {
boolean result;
pos++;
int printpos = pos;
if(expr[pos]=='+'||expr[pos]=='-'||expr[pos]=='/'||expr[pos]=='*'){
System.out.print("(");
writeInfix(expr);
System.out.print(expr[printpos]);
result = writeInfix(expr);
System.out.print(")");
return result;
}else if(expr[pos] >= 'a' && expr[pos] <= 'z'){
System.out.print(expr[pos]);
return true;
}else{
return false;
}
}

谢谢你的帮助:)

最佳答案

您可以添加一个新的辅助方法,您可以在其中控制它的变量,并让 writeInfix(char[]) 只是一个包装器,除了调用“真正的”方法之外什么都不做。

在这个新方法中,pos 是一个变量。

  • 这也确保您可以(独立地)调用 API 方法 (writeInfix) 两次,而不必担心副作用(pos 在第一次调用后用错误的值初始化) .

关于java - 使用递归算法为中缀符号添加前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44197845/

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