在CLRS,第三版,第155页中给出了在MAX-HEAPIFY中, 每个子树的最大尺寸至多为2n / 3 ,最差的情况发生在树的底部正好满一半的时候。 我明白为什么最差的时候,树的底部正好是半满的。 在这个问题中也回答了MAX-HEAPIFY中的最坏情况:“最坏的情况发生在树的底部正好是半满的时候” 我的问题是如何获得2n / 3? 为什么如果最低水平是一半,那么子树的大小是2n / 3? 如何计算? 谢谢
DFS主要用于在图中find一个循环,而不是BFS。 有什么理由? 在遍历树/图时,两者都可以find一个节点是否已经被访问过。
我只是想知道是否有人能够为我澄清一个平衡树的定义。 我有这样的说法:“每棵子树的树是平衡的,两棵子树的高度最多相差一个。 我很抱歉,如果这是一个愚蠢的问题,但是这个定义是否适用于每一个节点一直到树的叶子,或只有左侧和右侧的子树,我想另一种方式来问这个是问一个树的内部节点是否可能不平衡,整棵树保持平衡?
这更像是一个CS问题,但却是一个有趣的问题: 比方说,我们有2个树结构,或多或less相同的节点重组。 你会如何发现 任何 在某种意义上说是最小 操作顺序 MOVE(A, B) – 移动节点B下的节点A(整个子树) INSERT(N, B) – 在节点B下插入一个新节点N. DELETE (A) – 删除节点A(与整个子树) 将一棵树转换为另一棵树。 可能显然存在这样的转换不可能的情况,根本上是小孩B与小孩A之间的根B)。 在这种情况下,algorithm只会传递一个“ 不可能 ”的结果。 更壮观的版本是对networking的一种推广,即当我们假设一个节点可以在树中多次出现(实际上有多个“父母”),而周期是禁止的。 免责声明:这不是一个家庭作业,实际上它来自一个真正的商业问题,我发现它是相当有趣的,想知道如果有人可能知道一个解决scheme。
我最近学习了二进制空间分区树及其在3Dgraphics和碰撞检测中的应用。 我也简要地阅读了有关四叉树和八叉树的材料。 你什么时候使用四叉树而不是bsp树,反之亦然? 它们是可以互换的吗? 如果我有足够的信息来填写这样的表格,我会很满意: | BSP | Quadtree | Octree ————+—————-+——- Situation A | X | | Situation B | | X | Situation C | | | X 什么是A,B和C?
trie和radix trie的数据结构是一样的吗? 如果它们是相同的,那么基数特里(AKA Patricia trie)的含义是什么?
是否有一些* nix工具或perl / php库,可以让你轻松创build目录树可视化,看起来像下面? www |– private | |– app | | |– php | | | |– classes | | | +– scripts | | |– settings | | +– sql | +– lib | +– ZendFramework-HEAD +– public |– css |– images +– scripts
我很好奇,在graphicssearch和树search版本之间是否存在DFS,A *search在人工智能方面的基本区别?
有人可以解释这两个数据结构之间的主要区别是什么? 我一直在试图find一个在线来源,突出差异/相似之处,但我还没有发现任何太多的信息。 在什么情况下会比另一个更受欢迎? 什么样的实际情况让一个人比另一个“更好”使用?
作为程序员,我应该什么时候考虑使用RB树,B-树或AVL树? 在决定select之前,需要考虑哪些关键点? 有人可以解释一下每个树形结构的场景,为什么它是参照关键点select的?