gpt4 book ai didi

oop - 最佳实践 : A child node's knowledge about its parent

转载 作者:行者123 更新时间:2023-12-01 11:05:05 25 4
gpt4 key购买 nike

我想了解关于树中的子节点应该知道多少关于其父节点的信息的最佳实践。

我当前的问题相当简单明了。我有一棵信息树,想要获取叶节点的“全名”(在这种情况下,它将是树中每个节点的名称到叶节点,用点分隔)。我可以通过向叶节点添加一个“getFullName”方法来做到这一点,该方法向上遍历树到根并在每个父节点的名称前添加并返回最终结果,但这需要叶节点知道其父节点的类类型(叶和非叶子不是同一类)。或者我可以在其他地方添加一个效用函数,它基本上做同样的事情,但知道不同的类类型。

我试图四处搜索,但这个问题有点过于宽泛,无法在 Google 上获得任何有用的匹配。

提前致谢。

最佳答案

确实在这里有很多选择,是的,你的问题解决了一种常见的情况,即一方面要牺牲处理效率,另一方面要增加存储需求和可能的冗余。

没有单一的最佳实践。空间/时间权衡取决于您的情况。如果您使用冗余存储,将子链接和父链接都保存在节点内,您将需要确保您的数据结构被正确封装并且您的方法保持一切一致。

由于您有一个从顶部遍历节点的用例,因此父链接可以正常工作,您可以通过递归或从后到前构建字符串来组成全名。因为用例是针对您的情况的,所以这不是一个坏主意。

另一种选择是将全名存储在节点中,但这会增加冗余以防您移动节点。

简而言之,您不必担心违反最佳实践,但您应该权衡所有选择以做出适合您的选择。

现在如果你正在制作一个通用的树数据结构,比如 Java 的 TreeNode,你可能会创建一个接口(interface)并允许人们按照他们认为合适的方式实现事物,提供一个合适的通用实现(DefaultMutableTreeNode),它具有所有链接-- parent 、 child 和 sibling 。

关于oop - 最佳实践 : A child node's knowledge about its parent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6766296/

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