当前位置: 首页 > news >正文

综合门户网站什么意思seo软件开发

综合门户网站什么意思,seo软件开发,公司网站首页图片素材,狗爹服务器做视频网站数据结构与算法-前缀树详解 1 何为前缀树 2 前缀树的代码表示及相关操作 1 何为前缀树 前缀树 又称之为字典树,是一种多路查找树,多路树形结构,是哈希树的变种,和hash效率有一拼,是一种用于快速检索的多叉树结构。 性质:不同字符串的相同…

数据结构与算法-前缀树详解

  • 1 何为前缀树
  • 2 前缀树的代码表示及相关操作

 

1 何为前缀树

 
前缀树 又称之为字典树,是一种多路查找树,多路树形结构,是哈希树的变种,和hash效率有一拼,是一种用于快速检索的多叉树结构。

性质:不同字符串的相同前缀只保存一份。

操作:查找,插入,删除

例如 字符数组
[“abc”,“bck”,“abd”,“ace”]
构建成一颗前缀树


 

2 前缀树的代码表示及相关操作

 

 

前缀树中的节点

 

coding

public static class TrieNode {public int pass;//前缀树节点被经过的次数public int end;// 多少个字符串在此点结尾public TrieNode[] nexts;// 下一个节点// 当字符种类很多的时候 可以使用HashMap// public Map<Character,TrieNode> trieNodeMap;// key 某条图  value 指向的下一个节点public TrieNode(){// trieNodeMap = new HashMap<>();//无序使用Hash表// trieNodeMap = new TreeMap<>();// 有序使用有序表this.pass = 0;this.end = 0;nexts = new TrieNode[26];}
}

 

前缀树代码表示及相关操作

 

public static class Trie {private TrieNode root;//头结点public Trie() {this.root = new TrieNode();}/*** 将字符串word加入到前缀树中** @param word*/public void insert(String word) {if (word == null) {return;}char[] chars = word.toCharArray();TrieNode node = root;node.pass++;int index = 0;// 从左往右遍历字符串for (int i = 0; i < chars.length; ++i) {// 由字符计算得出 该走哪条路index = chars[i] - 'a';//如果没有此字符的路 则新建if (node.nexts[index] == null) {node.nexts[index] = new TrieNode();}//来到下一个节点node = node.nexts[index];node.pass++;}node.end++;}/*** @param word* @return 字符串在前缀树中加入过几次*/public int search(String word) {if (word == null) {return 0;}// 临时前缀树节点 用于遍历前缀树TrieNode node = root;char[] chars = word.toCharArray();int index = 0;for (int i = 0; i < chars.length; ++i) {index = chars[i] - 'a';// 没有通往当前字符串的路 则说明没有加入过这个字符串 直接返回 0if (node.nexts[index] == null) {return 0;}// 下一个节点node = node.nexts[index];}// 所有字符的路都有  则返回最后一个节点的 end 值return node.end;}/*** @param pre* @return 有多少个字符串是以 pre开头的*/public int prefixNumber(String pre) {if (pre == null) {return 0;}TrieNode node = root;int index = 0;char[] chars = pre.toCharArray();for (int i = 0; i < chars.length; ++i) {index = chars[i] - 'a';if (node.nexts[index] == null) {return 0;}node = node.nexts[index];}return node.pass;}/*** 删除前缀树中的字符串word** @param word*/public void delete(String word) {if (search(word) != 0) { // 前缀树中存在字符串再删除char[] chars = word.toCharArray();TrieNode node = root;node.pass--;int index = 0;// 遍历每一个节点 将节点的pass值减 1for (int i = 0; i < chars.length; ++i) {index = chars[i] - 'a';if (--node.nexts[index].pass == 0) {node.nexts[index] = null;return;}node = node.nexts[index];}node.end--;}}
}
http://www.rdtb.cn/news/11525.html

相关文章:

  • 校园网网站建设实训报告新手怎么推广自己的店铺
  • 用静态网站更新莱芜seo
  • 网站备案在哪里百度seo入驻
  • 制作网站页面下载优化大师
  • 新疆做网站的公司网站页面优化包括
  • 一流的网站建设流程图网站的营销推广方案
  • 创建软件网站优化设计七年级上册数学答案
  • 20m带宽做网站够用吗百度应用
  • 长沙flash网站设计东莞百度seo新网站快速排名
  • 动态网站设计毕业选题女孩子做运营是不是压力很大
  • 手把手教你用动易做网站百度热搜榜排名今日
  • wordpress 搜索 自定义湖南网站seo推广
  • 网站静态与动态整合营销策划名词解释
  • 响应式网站排名如何网站优化推广公司排名
  • wordpress 笔记主题免费网站建设seo
  • ps ui做响应式网站要求网络营销推广机构
  • 做论坛和做网站有什么区别seo关键词优化费用
  • 免费追剧的app下载百度seo排名技术必不可少
  • 公司做网站广告语爱客crm
  • 如今做那些网站能致富站长seo综合查询工具
  • 网站开发课程技术培训搜索引擎优化seo培训
  • 长沙电子商务网站建设400个成品短视频
  • wordpress 导航站点网络营销服务策略
  • 游戏下载网站模板app推广拉新工作可靠吗
  • 做电影网站多少钱福鼎网站优化公司
  • 单页网站设计世界排名前十位
  • 设计师可以做兼职的网站百度seo自动优化
  • php音乐网站设计推广优化厂商联系方式
  • 牛网站网络营销知识点
  • 网站制作费用属于广告费吗怎么搭建一个网站