gpt4 book ai didi

objective-c - Objective C 递归问题?

转载 作者:行者123 更新时间:2023-11-29 13:40:35 24 4
gpt4 key购买 nike

我正在对自定义编码的 BST 进行有序树遍历。这是代码

-(void) inOrderTraversalToString : (NSString*) accumulateString : (Node*) ptrNode {
if(ptrNode == nil) {
return;
} else {
[inOrderTraversalToString : accumulateString : ptrNode.left];
accumulateString += [[NSNumber : ptrNode.datum] stringValue];
[inOrderTraversalToString : (NSString*) accumulateString, ptrNode.right];
}
}

我在尝试编译时收到各种糟糕的错误消息。我知道这可能只是某个地方的错字,但一些同行评审会很好。 几天,我一直在为此苦苦思索。

谢谢。 -- 亚历克斯

最佳答案

您的代码远非合法的 Objective-C。 + 运算符没有为 NSString 定义(并且不允许重载)。 NSString 无论如何都不会与你的递归一起工作,因为它是不可变的。你必须使用 NSMutableString。您也没有正确调用或声明方法。

这是对正确版本的尝试:

- (void)inOrderTraversalToString:(NSMutableString *)accumulateString withNode:(Node *)node
{
if(ptrNode == nil) return;

[self inOrderTraversalToString:accumulatedString withNode:ptrNode.left];
[accumulatedString appendString:[ptrNode.datum stringValue]];
[self inOrderTraversalToString:accumulatedString withNode:ptrNode.right];
}

此代码假定 leftrightdatum 确实是您的 Node 类的属性,并且在调用此方法之前,accumulatedString 已被初始化为合理的值。

关于objective-c - Objective C 递归问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9305368/

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