Questions tagged «tree»

树是图的一种特殊类型,它只允许与树相似的边缘层次集。从数学上讲,它实际上是树状结构。树具有根节点和子节点。正式而言,它被描述为一个无环连接图。

6
树集的数据结构。
尝试可以有效存储元素列表。前缀是共享的,因此节省了空间。 我正在寻找一种有效存储树的类似方法。我希望能够检查成员资格并添加元素,知道给定树是否为某些存储树的子树,或者是否存在存储树为给定树的子树也是可取的。 我通常会存储大约500棵高度小于50的不平衡二叉树。 编辑 我的应用程序是使用某种记忆的某种模型检查器。想象一下,我有一个状态和以下公式:和其中是一个复杂的子公式,并想象我首先想知道是否在成立。我检查成立,经过冗长的过程后,我确定是这种情况。现在,我想知道是否在成立。我想记住成立的事实,并注意到这样我几乎可以立即得出中。˚F = φ 克= (φ ∨ ψ )φ ˚F 小号φ 克小号˚F 克⇒ ˚F 克小号sssF= ϕf=ϕf = \phiG= (φ ∨ ψ )g=(ϕ∨ψ)g = (\phi \vee \psi)ϕϕ\phiFffsssϕϕ\phiGggsssFffG⇒ ˚Fg⇒fg \Rightarrow fGggsss 相反,如果我已经证明不能满足,那么我想告诉我们不能立即满足。吨˚F 吨GggŤttFffŤtt 我们可以在公式上建立偏序,并具有 iff。对于每个状态,我们存储两组公式;存储保存的最大公式,存储不保存的最小公式。现在给定状态和公式,我可以看到,或者在这种情况下我是完成后,我直接知道是否在成立。克⇒ ˚F 小号大号(小号)升(小号)小号克∃ ˚F ∈ 大号(小号),˚F ⇒ 克∃ ˚F ∈ 升(小号),克⇒ ˚F 克小号G≥ ˚Fg≥fg \geq …

2
如何选择功能字典数据结构?
我已经阅读了一些有关以下数据结构的信息: Bagwell的理想哈希尝试 Larson的动态哈希表 红黑树 帕特里夏树 ...我敢肯定还有很多其他人。对于每个人都更适合的方式,或者为什么我会选择一个而不是另一个,我很少见。因此,以下是这些方面的一些问题: 重要的是要了解哪些功能词典数据结构? 这些方法的优缺点是什么? 什么时候使用更命令性的数据结构有意义? 数字2和3是最重要的数字。:-)

1
具有多项式大小的有根树中“短”路径数的下限
令为有根的二叉树。从T的根到叶子的每条路径的长度为n。T的每个节点始终有一个左子节点和一个右子节点,但它们可能是相同的(因此,总是有2 n条路径)。T的大小以O (p o l y (n ))为界。具有不同子节点的节点称为分支节点。ŤTTŤTTñnnŤTT2ñ2n2^nŤTTø (p Ò 升ÿ(n ))O(poly(n))O(poly(n)) 我们说两条路径是不同的,如果有一个共享分支节点,一条路径去往左子节点,另一条路径去到右子节点。很明显,中至少有一条具有O (log n )个分支节点的路径。否则,T中的节点过多。ŤTTO (对数n )O(log⁡n)O(\log n)ŤTT 如果我知道树中有ω (log n )个分支节点,是否有分支节点的路径数有更好的下限?O (对数n )O(log⁡n)O(\log n)ω(logn)ω(log⁡n)\omega(\log n)

2
搜索树木集合的高效算法
我有大量的树木数据集,我想通过指定一个treelet(连接的子图)进行搜索。查询应返回数据集中所有小树的出现。 有有效的算法可以做到吗? 我想到的是后缀数组,但是,天真地将树编码为字符串(按其节点的固定遍历顺序)将不起作用,因为搜索小树可以是任意形状。 更新: 有关我期望的典型实例的一些详细信息: 数据集将至少包含数万棵树,每棵树包含约20至30个节点。树不会不是二叉树,但是每个节点的典型子节点数会很小(通常不大于4或5,尽管在某些退化的情况下可以达到约30)。标签的数量将是数万个。 对于NLP应用程序,我需要这样做:每棵树将成为句子的依存关系分析,每个节点代表一个单词出现,每个标签为一个字典单词(带有某种修饰)。

2
地图树的最佳数据结构是什么。
我正在寻找一种数据结构,它基本上是一棵地图树,其中每个节点上的地图都包含一些新元素以及其父节点地图中的元素。这里的映射是指具有键和值的编程映射,例如STL中的映射或python中的dict。 例如,可能有一个根节点: root = {'car':1, 'boat':2} 和2个子级,每个子级都向父级地图添加一个元素 child1 = {'car':1, 'boat':2, 'jet':35} child2 = {'car':1, 'boat':2, 'scooter':-5} 我希望这是尽可能节省空间的,即我不想在每个节点上存储结果图的完整副本,但理想情况下,查找仍然是O(log N),N是总数节点上的元素,而不是整个树。 我当时在想也许有一个智能哈希函数可以用于此目的,但是什么也没想出来。 天真的方法是将新添加的条目存储在每个节点的映射中,然后在未找到任何内容的情况下向上移动树。我不喜欢这样,因为它取决于树的深度。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.