// trie 字典树实现
package Algorithm// 字典树节点
type TrieNode struct {children map[interface{}]*TrieNodeisEnd    bool
}// 构造字典树节点
func newTrieNode() *TrieNode {return &TrieNode{children: make(map[interface{}]*TrieNode), isEnd: false}
}// 字典树
type Trie struct {root *TrieNode
}// 构造字典树
func NewTrie() *Trie {return &Trie{root: newTrieNode()}
}// 向字典树中插入一个单词
func (trie *Trie) Insert(word []interface{}) {node := trie.rootfor i := 0; i < len(word); i++ {_, ok := node.children[word[i]]if !ok {node.children[word[i]] = newTrieNode()}node = node.children[word[i]]}node.isEnd = true
}// 搜索字典树中是否存在指定单词
func (trie *Trie) Search(word []interface{}) bool {node := trie.rootfor i := 0; i < len(word); i++ {_, ok := node.children[word[i]]if !ok {return false}node = node.children[word[i]]}return node.isEnd
}// 判断字典树中是否有指定前缀的单词
func (trie *Trie) StartsWith(prefix []interface{}) bool {node := trie.rootfor i := 0; i < len(prefix); i++ {_, ok := node.children[prefix[i]]if !ok {return false}node = node.children[prefix[i]]}return true
}

github链接地址:https://github.com/gaopeng527/go_Algorithm/blob/master/trie.go

转载于:https://www.cnblogs.com/gaopeng527/p/6699679.html

Go语言字典树定义及实现相关推荐

  1. 字典树c语言,字典树的应用 单词意义查找-C语言实现

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. 实现根据单词快速找到对应的解释 /* 字典树应用,快速单词查找 */ const int ...

  2. HDU 1247 Hat’s Words 字典树(Trie树)

    HDU 1247 Hat's Words 字典树(Trie树) 字典树的建立是应该都是一样的 下面是我的做法: 建立完后, 对每一个单词都进行find_string()判断是否符合, 分别对其分成两半 ...

  3. C语言实现Trie字典树 (附完整源码)

    实现Trie字典树 TrieNode结构体 实现实现Trie字典树的完整源码(定义,实现,main函数测试) TrieNode结构体 typedef struct TrieNode {struct T ...

  4. dfa算法c语言,DFA跟trie字典树实现敏感词过滤(python和c语言)

    DFA和trie字典树实现敏感词过滤(python和c语言) 现在做的项目都是用python开发,需要用做关键词检查,过滤关键词,之前用c语言做过这样的事情,用字典树,蛮高效的,内存小,检查快. 到了 ...

  5. def python语言对照表_如何用python,华丽实现字典树?

    文/IT可达鸭 图/IT可达鸭.网络 前言 上篇文章,我们用自定义数据结构实现了有序集合set.本文在此基础上,进一步加深,设计一个新的数据结构--字典树.有过参加过算法竞赛或做过数据检索的小伙伴,应 ...

  6. c语言 trie树,数据结构篇——字典树(trie树)

    引入 现在有这样一个问题, 给出$n$个单词和$m$个询问,每次询问一个单词,回答这个单词是否在单词表中出现过. 好像还行,用 map ,几行就完事了. 那如果n的范围是 $10^5$ 呢?再用 $m ...

  7. c语言 trie树,C语言实现Trie树(字典树)的插入查找删除与遍历操作

    Trie树,也称作是字典树,是一种哈希树的变种,查询效率较高.Trie树可以用于统计或者排序大量的字符串,比如对一系列字符串按照字典序排序. 字典树是一个多叉树,每一个节点上存储的不是一个字符串,而是 ...

  8. 树根c语言,03-树1 树的同构 (C语言链表实现)

    #include #include #include #include typedef char ElemType; typedef struct BinTree { ElemType data; s ...

  9. 字典树实现_【Leetcode每日打卡】单词的压缩编码 Trie(字典树)入门

    一.前言(鸡汤(一段废..话..可以跳过啦)) 同学们好!没想到我这个小小的公众号破千粉啦,对于大佬们而言或许不值一提,但是对我而言是一个莫大的鼓舞!更加坚定了我持续输出优质内容的决心.希望我们都能每 ...

最新文章

  1. 找出指定范围的回文数C++代码实现
  2. Mac下Git安装及配置
  3. 理解正向代理和反向代理
  4. 一文搞懂JVM架构和运行时数据区,全网最新
  5. Struts2中访问HttpServletRequest和HttpSession
  6. python绘制糖葫芦_python简单爬虫(一)
  7. Idea设置多开窗口
  8. android wear iphone7,iOS 10.1可修复iPhone7系列与Android Wear配对问题
  9. j2ee与mysql乱码过滤_J2EE中文乱码处理
  10. 第三次作业 词频统计
  11. android自定义表格布局
  12. 一些国外学位论文和期刊下载链接
  13. b站的视频如何下载到手机上
  14. ebay 后台HTML有尺寸宽度要求吗,Ebay后台有哪些常用的操作页面?
  15. 物理不好适合学计算机,理科女物理不好、数学一般,能不能学计算机、经济学专业?...
  16. 一个优秀的网站首页是如何设计的?
  17. 大文件打包压缩成的几个小文件怎么解压?
  18. php怎么接入微支付宝支付,php开发中app怎么接入支付宝
  19. B站弹幕姬,弹幕礼物感谢,关注感谢,自动回复,房管工具,房管助手,基于java
  20. LNK2019解决思路

热门文章

  1. sublime配置python开发环境_Sublime Text 配置Python3.7开发环境
  2. phpsql拼接_SQL存储过程中SQL语句拼接
  3. qt 启动画面显示图片_Qt程序起动画面QSplashScreen
  4. 元气森林网络推广外包来势汹汹,地毯式营销旨在打造国民品牌
  5. 网站优化中哪些设置会影响蜘蛛的抓取?对网站SEO产生什么影响?
  6. 浅析网站建设的基本原则
  7. 当百度更新算法时,网站优化应注意哪些事项?
  8. 浅析网站外链优劣如何判定?
  9. Vim设置括号自动补全和快速跳出
  10. (转载)封装bilibili播放器,自定义边下边播和缓存功能