java 有向无环图 树_双数组Trie树高效构建有向无环图

图是很常见的一种结构了,不管是数据结构算法中的各种图结构,还是机器学习中的概率图。图主要是由若干顶点及连接两顶点的边所构成的图形,通过它可以用来描述某些事物之间的某种特定关系。

有向无环图

有向无环图,即 Directed Acyclic Graph,属于有向图,图结构中不存在环,可用来表示事件之间依赖关系。

799c07db7c0b666684dc9f5538c9da8b.png

Trie树

Trie 是一种搜索树,它的 key 都为字符串,通过 key 可以找到 value。能做到高效查询和插入,时间复杂度为O(k),缺点是耗内存。它的核心思想就是减少没必要的字符比较,使查询高效率,即用空间换时间,再利用共同前缀来提高查询效率。

Trie 树的根节点不包含字符,根节点到某节点的路径连起来的字符串为该节点对应的字符串,每个节点只包含一个字符,此外,任意节点的所有子节点的字符都不相同。

比如如下,将五个词语添加到 Trie 树中,最后的结构如图所示。

TrieTree tree = new TrieTree();

tree.put("美利坚");

tree.put("美丽");

tree.put("金币");

tree.put("金子");

tree.put("帝王"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值