首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组合设计模式.树结构中叶的跟踪策略

组合设计模式.树结构中叶的跟踪策略
EN

Stack Overflow用户
提问于 2016-02-04 01:48:16
回答 1查看 463关注 0票数 1

在树结构中跟踪树叶的好策略是什么?

为了我的目的,我的叶子被命名,但名称并不意味着什么,不知道它们在树中的位置。例如,可能有许多同名的叶子,所以我需要知道它们驻留在哪个“分支”上。

有推荐的技术吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-04 10:22:17

复合模式允许您在遍历时以相同的方式对待您的叶子及其父母\分支。此外,它还使您可以更改“主函数”方法的逻辑,以迭代聚合组件(在您的情况下是分支)的子组件,并只对叶组件执行一些操作。

现在回到关于叶子的问题,必须知道它们所属的分支--我猜想,您的解决方案中的叶子必须有一个引用,返回到它们的父/分支。然后,当你在树中寻找树叶时,你被允许带出父信息和叶信息。如果您想知道父分支的情况,这应该可以解决问题。如果您希望将信息保存到2层(祖父母)或更高的级别,那么您可以构建一个递归方法,该方法向上遍历,直到满足某些祖先条件或达到树根。

总之,我的观点-复合模式的处理与以通用方式处理树和分支有关。但是,在遇到每个节点时执行的逻辑可能会根据节点的类型而有所不同。这提供了具有特定于节点类型的逻辑的灵活性,我在上一段中给出了一个例子。在逻辑组合模式中,只要所有节点的基本类型是相同的,并且遍历顺利进行,那么复合模式就不关心它。

我希望它能帮你解决问题。我在我的博客上写了一篇关于复合设计模式- http://www.javabrahman.com/design-patterns/composite-design-pattern-in-java/的文章。如果需要的话,您可以参考它来更好地理解这个模式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35191090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档