树与图在索引上的区别
以下内容来源于,利用并查集求解图是否有环,这道算法题的理解。
声明:树是图的一个子概念,因此,这里声明下文的图是指非树的图,就是特指不是树的图。
树与图在节点与路径上的区别。
- 树和图的区别体现在节点特征上,树节点自顶向下角度看,只会被一个父节点指向,自底向上角度看,只会被指向只一个父节点。而图节点无论如何都可以是一个以上。
用哈希表来表示树
- 树的结构可以用哈希表表示,利用哈希索引的特征我们可以为树节点建立索引,索引可以用来表示节点有多少个父亲,也可以用来表示节点有多少个孩子。
用哈希表来表示图
- 最终你会发现图也可以用哈希表建立节点索引,有趣的是他节点索引可以有多个父亲或者说父亲可以共有孩子。
利用构建哈希表的差异来区分图和树
-
经常问怎么判断图有环,其实就是问是树还是有环图?
-
那么我们只需要遍历图的边,为图节点用哈希表建立索引既可。(优先用数组做哈希表)
集合的本质,可以是哈希表
- 集合,把具有相同特征得元素归为一个群,群就叫集合,我们可以为元素标记特征或者为元素建立索引,以此来为集合划分边界。大多用标记特征来定义集合