我正在处理我正在处理的项目的帮助:如何在嵌套集模型中计算左右,假设所有输入都没有特定的顺序。
分发4种形式,每种形式带4个人,每4个人带4个人。网络向下发展至7代。假设我决定选择任何级别的节点,我怎样才能找到下行器和上行器? A
| | | |
B C D E
|
------------
| | | |
F G H J
|
----------
| | | |
W X Y Z
说明:
A brings A B C D
E then brings F G H J
F brings WXYZ
依此类推。在第7代,我们经历了停顿。与此同时,每个节点开始谱系下行词。
答案 0 :(得分:2)
计算左右访问数是一个迭代的程序操作。它不能在单个查询中完成,但您可以通过递归调用自身的单个过程来完成。
您的程序需要有两个参数:
该程序需要返回已应用的最高访问次数(最后一次)。
在该过程中,您运行查询以查找具有给定ID的节点的所有子节点。如果它们是有序的,您可以相应地进行排序 - 或者您可以使用任意顺序。对于找到的每个子项,设置左侧数字,然后以递归方式对该子项调用该过程。当递归调用返回时,使用返回代码设置正确的访问次数。
Joe Celko在一本书中有whole chapter,专门讨论如何通过访问次数计算来提高智慧和效率。如果您的数据集非常大且经常被编辑,您可能需要阅读 - 否则您只需在每次编辑节点列表时重新计算所有访问数字。