gpt4 book ai didi

java - 匹配类型层次结构

转载 作者:搜寻专家 更新时间:2023-11-01 03:33:09 24 4
gpt4 key购买 nike

假设我们有一个固定的类型层次结构,例如如下图所示。它是一棵定义明确的树,其中每个节点都有一个父节点(根节点除外)。

Human taxonomy

每种类型都有一个与之关联的 Action ,应该在成功匹配时执行。这意味着一个 Action 对应于所述类型的一个方法。这只是任意关联。

将对象与类型层次结构进行匹配的智能方法是什么?每个对象都应该与最具体的类型相匹配。对象已经创建。

最佳答案

从根开始使用递归搜索。

一旦在children中找不到匹配项,如果其层级比上次匹配项更深,则记住匹配的对象。

伪代码:

    class MatchContext {
public int level;
public Node result;
}

public boolean match(Node object, int level, MatchContext ctx) {
if (no match)
return false;
boolean found = false;
for (all children in object) {
if (match(child, level + 1, ctx))
found = true;
}
if (!found && level > ctx.level) {
ctx.level = level;
ctx.result = this;
}
return found;
}

像这样调用它:

    MatchContext ctx;
if (match(root, 0, ctx))
myAction(ctx.result);

关于java - 匹配类型层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42002904/

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