gpt4 book ai didi

c# - 尝试将递归 JavaScript 方法移植到 C#,这种方法有意义吗?

转载 作者:行者123 更新时间:2023-12-02 19:02:56 25 4
gpt4 key购买 nike

JavaScript 中的方法是:

findNode: function(root, w, h) {
if (root.used)
return this.findNode(root.right, w, h) || this.findNode(root.down, w, h);
else if ((w <= root.w) && (h <= root.h))
return root;
else
return null;
}

这一行在 C# 中尤其不起作用

return this.findNode(root.right, w, h) || this.findNode(root.down, w, h);

这是我翻译它的尝试,但我可以使用第二种意见来判断这是否有效或破坏算法。我缺少更好的方法吗?

private Node FindNode(Node node, Block block)
{
Node n;
if (node.used) // recursive case
{

// is this a good translation of the JavaScript one-liner?

n = FindNode(node.right, block);
if (n != null)
{
return n;
}
else
{
return FindNode(node.down, block);
}
}
else if ((block.width <= node.width) && (block.height <= node.height)) // Base case
{
return node;
}
else
{
return null;
}
}

Here is the original algorithm I'm working off of.

最佳答案

n = FindNode(node.right, block);
return n ?? FindNode(node.down, block);

这是我唯一要做的改变

关于c# - 尝试将递归 JavaScript 方法移植到 C#,这种方法有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14616591/

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