java 数据结构源码--Trie树
node
package trieTree;public class TrieTreeNode {final int MAX_SIZE=26; int nCount;//记录该字符出现次数 char ch; //记录该字符 TrieTreeNode[] child; public TrieTreeNode() { nCount=1; child=new TrieTreeNode[MAX_SIZE]; } }
tree
package trieTree;
import trieTree.TrieTreeNode;public class TrieTree {//字典树的插入和构建 public void createTrie(TrieTreeNode node,String str){ if (str==null||str.length()==0) { return; } char[] letters=str.toCharArray(); for (int i = 0; i < letters.length; i++) { int pos = letters[i] - 'a'; if (node.child[pos] == null) { node.child[pos] = new TrieTreeNode(); }else { node.child[pos].nCount++; } node.ch=letters[i]; node = node.child[pos]; } } //字典树的查找 public int findCount(TrieTreeNode node,String str){ if (str==null||str.length()==0) { return -1; } char[] letters=str.toCharArray(); for (int i = 0; i < letters.length; i++) { int pos = letters[i] - 'a'; if (node.child[pos] == null) { return 0; }else { node=node.child[pos]; } } return node.nCount; } }
测试源码 test
package trieTree;
import trieTree.TrieTree;
import trieTree.TrieTreeNode;public class test {public static void main(String[] args){String[] strs={ "banana", "band", "bee", "absolute", "acm", }; String[] prefix={ "ba", "b", "band", "abc", }; TrieTree tree = new TrieTree(); TrieTreeNode root=new TrieTreeNode();for (String s : strs) { tree.createTrie(root, s); }
// tree.printAllWords(); for(String pre:prefix){ int num=tree.findCount(root,pre); System.out.println(pre+" "+num); } }
}
java 数据结构源码--Trie树相关推荐
- java 数据结构源码--线段树
线段树模板 package segmentTree;public class SegmentTree {private class Segment { int left; int right; int ...
- 数据结构源码笔记(C语言):Huffman树字符编码
#include <stdio.h> #include<string.h> #define N 10 /*待编码字符的个数,即树中叶结点的最大个数*/ #define M 2* ...
- 数据结构源码笔记(C语言):哈夫曼树
#include <stdio.h> #include <stdlib.h> #define MAXINT 2147483647 #define MAXNUM 50 #defi ...
- 数据结构源码笔记(C语言):B树的相关运算算法
//B树的相关运算算法#include<stdio.h> #include<malloc.h>#define MAXM 10//定义B树最大的阶数 typedef int Ke ...
- 数据结构源码笔记(C语言描述)汇总
数据结构源码笔记(C语言):英文单词按字典序排序的基数排序 数据结构源码笔记(C语言):直接插入排序 数据结构源码笔记(C语言):直接选择排序 数据结构源码笔记(C语言):置换-选择算法 数据结构源码 ...
- 数据结构源码笔记(C语言):英文单词按字典序排序的基数排序
//实现英文单词按字典序排序的基数排序算法#include<stdio.h> #include<malloc.h> #include<string.h>#defin ...
- 数据结构源码笔记(C语言):索引文件建立和查找
//实现索引文件建立和查找算法#include<stdio.h> #include<malloc.h> #include<string.h> #include< ...
- 数据结构源码笔记(C语言):快速排序
//实现快速排序算法 #include<stdio.h> #include<malloc.h> #define MAXE 20typedef int KeyType; type ...
- 数据结构源码笔记(C语言):冒泡排序
//冒泡排序算法实现 #include<stdio.h> #include<malloc.h> #define MAXE 20typedef int KeyType; type ...
最新文章
- idea项目依赖导入失败_解决idea导入项目后依赖报错问题
- 第二十八讲 解非齐次线性方程组
- “AI+”农业向农民致敬-丰收节交易会:谋定工业反哺农业
- 如何成为有思想、创新的程序员
- 澳洲天才医生寻根(转)
- 欢迎使用Java 8之前要重温的10个JDK 7功能
- CentOS 报no acceptable C compiler found in $PATH的解决办法
- 01-执行上下文与变量对象
- Jquery 中each循环嵌套的使用示例教程
- The Unsolvable Problem
- dialog问题记录
- java代码如何降低重复率_JAVA 如何实现大文本去除重复行
- C#委托之个人理解(转)
- 2010 模板下载 罗斯文_利用模板建立ACCESS数据库—ACCESS图解操作系列(二)
- Vista home版连Win7旗舰版的远程桌面,提示“您的凭据不工作”的解决方法
- Mac 安装仿宋GB2312 For Word/WPS
- graphpad7.04多组比较p值_GraphPad Prism 统计指南 | 什么是P值?
- 2021强网拟态防御国际精英赛 reverse: babytms
- ONLYOFFICE Docs如何与NEXTCLOUD 24连接集成
- 腾讯高工保姆级“Java成长手册”,层层递进,全是精华!Github上都没有!
热门文章
- 【Java 网络编程】UDP 服务器 与 客户端持续交互 案例
- 【Java 网络编程】UDP 服务器 客户端 通信 ( DatagramSocket | DatagramPacket | UDP 发送数据包 | UDP 接收数据包 | 端口号分配使用机制 )
- 如何使用Laravel Debugbar?
- redis-sentinel 主从复制高可用
- 求不同字母全排列两种递归模板
- 蓄电池容量和环境温度的关系
- Sql server 2005系统表详细说明
- Shodan搜索引擎介绍
- 最详细的CISCO路由器配置命令及方法
- java的动态代理机制详解