- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想了解关于树中的子节点应该知道多少关于其父节点的信息的最佳实践。
我当前的问题相当简单明了。我有一棵信息树,想要获取叶节点的“全名”(在这种情况下,它将是树中每个节点的名称到叶节点,用点分隔)。我可以通过向叶节点添加一个“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/
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我正在探索 Google Knowledge Graph Search API,但找不到解释响应或搜索实体的 @id 字段的相关文档。例如 "@id": "kg:/m/09tm4t4"。 1- 这个
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 5 个月前关闭。 Improve
这里的聪明程序员如何跟踪他们从多年的经验中获得的方便的编程技巧和有用的信息?有用的编译器参数、IDE 快捷方式、巧妙的代码片段等。 我有时会在查找一两年前我曾经知道的东西时感到沮丧。我的 IE 收藏夹
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 9年前关闭。 Improve this q
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 4 个月前关闭。 Improve
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4年前关闭。 Improve thi
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 1 年前。 Improve
我正在尝试使用 Dialogflow Knowledge 创建常见问题解答。理想情况下,必须触发对话意图或常见问题解答。当我输入 FAQ 时,它确实从知识库中获取响应,但同时它也触发了槽位填充的意图。
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
当我: ldapadd -f pop01.ldif -x -D "cn=Manager,dc=ldap,dc=beonegroup,dc=be" -w 1234 我得到: adding new ent
输出应该是什么?这是代码: #include int main() { char *s[]={"knowledge","is","power"}; char **p; p=s
我一直在研究我的 Web 应用程序的数据库层的加密。它使用的是 MySQL 5.1(或更高版本,我不记得了)。 由我的组织管理的应用程序为公共(public)客户存储数据。 最简单的选择是 AES_E
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 6 年前。
我正在尝试将新的 Microsoft Knowledge API 集成到我的应用程序中。我需要在数据库中搜索以查找类似于 google/bing 搜索的结果。 到目前为止,我已经提出了这个请求 - 并
尝试创建一组由 google 电子表格驱动的 html 表单选项/选择字段,以引导用户进行特定选择。想想一顶有红色、蓝色或黑色可供选择的帽子,一件有蓝色、绿色或红色可供选择的 T 恤。源数据在第 1
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 12 年前。 Improve thi
我正在尝试使用 Dialogflow Knowledge但面临一个问题,我无法找到如何提高对我的问题的认识并将它们链接到答案。在培训选项卡中,我只能将无法识别的问题链接到意图,而不是知识问题/答案。
我正在从事一些预测文章引用计数的工作。我遇到的问题是我需要 ISI Web of Knowledge 中有关期刊的信息。他们逐年收集这些信息(期刊影响因子、特征因子……),但无法一次下载所有一年期期刊
我想了解关于树中的子节点应该知道多少关于其父节点的信息的最佳实践。 我当前的问题相当简单明了。我有一棵信息树,想要获取叶节点的“全名”(在这种情况下,它将是树中每个节点的名称到叶节点,用点分隔)。我可
我是一名优秀的程序员,十分优秀!