作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
假设我们有一个固定的类型层次结构,例如如下图所示。它是一棵定义明确的树,其中每个节点都有一个父节点(根节点除外)。
每种类型都有一个与之关联的 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/
我正在尝试将多个水平链接的 Button 和 TextView 垂直链接为 View 集,但仍保持平面 View 层次结构。这是我的初始布局和代码:
到目前为止,我已经在Google BigQuery上训练了几种模型,目前我需要查看模型的外观(即架构,损失函数等)。 有没有办法获取这些信息? 最佳答案 仔细阅读文档后,我可以说该功能尚不存在。我什至
本文实例讲述了PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)。分享给大家供大家参考,具体如下: 前言: 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个
我是一名优秀的程序员,十分优秀!