[英]Fastest tree traversal
我有一个相当大的树数据结构,它将得到更新(删除和添加节点等)。 我必须使用广度优先方法遍历树,以访问所有节点(达到一定的广度深度,例如7)并将其放到列表中。 然后,一个函数将遍历节点,如果在列表中找到信息,则返回true。
这需要大量时间才能遍历节点。 我不认为我应该将每个单个节点与每个单个子节点映射,然后使用Dictionary提取该节点并(递归地)获取其所有子节点。 我应该怎么做? 最快的方法是像彼此之间映射所有节点
Dictionary<Node, List<Node>>
处理这种情况的最佳方法是什么? 任何想法,指针,评论或任何事情都是有帮助的。 当前,此操作大约需要程序运行时间的25%。
如果您只是在评估谓词,则可以在遍历树时直接执行该谓词,而不必先将整个树放入列表中-除非您缓存列表。 直接在树节点上评估谓词,可以在首次找到您感兴趣的信息时尽早短路/停止遍历。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.