标签:Node word Trie pos next 实现 int now
Trie树的实现
Trie树也就是字典树,可以高效地用来进行字符串地检索。具体实现如下:
class Trie { // 树上节点类型 private class Node{ // 判断到该节点位置,是否是一个之前插入地字符串 public boolean isEnd; // 不同字母分别对应不同地分支 public Node[] next; Node() { isEnd = false; next = new Node[26]; } } // 根节点 private Node root; public Trie() { root = new Node(); } public void insert(String word) { Node now = root; for (int i = 0; i < word.length(); i ++) { int pos = word.charAt(i) - 'a'; if (now.next[pos] == null) { now.next[pos] = new Node(); } now = now.next[pos]; } //将这个节点设置为true,表示是一个合法的字符串 now.isEnd = true; } public boolean search(String word) { Node now = root; for (int i = 0; i < word.length(); i ++) { int pos = word.charAt(i) - 'a'; if (now.next[pos] == null) return false; now = now.next[pos]; } return now.isEnd; } public boolean startsWith(String prefix) { Node now = root; for (int i = 0; i < prefix.length(); i ++) { int pos = prefix.charAt(i) - 'a'; if (now.next[pos] == null) return false; now = now.next[pos]; } return true; } }
标签:Node,word,Trie,pos,next,实现,int,now 来源: https://www.cnblogs.com/salvete/p/15492661.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。