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

合肥网站建设新闻营销有赞短网址生成

合肥网站建设新闻营销,有赞短网址生成,wordpress 消息通知,网站开发的层次一、思路 这题的思路很简单,其实就是一个26叉树,但是这个数不同通过通常的左右节点属性,而是一个数组来存储的,每个数组下标存储下层的数组。其中有以下需要注意的点: 1.private Trie[] children; 这个说明孩子节点是…

一、思路

这题的思路很简单,其实就是一个26叉树,但是这个数不同通过通常的左右节点属性,而是一个数组来存储的,每个数组下标存储下层的数组。其中有以下需要注意的点:

1.private Trie[] children;

        这个说明孩子节点是一个Trie类型的数组,即数组中每个下标存储的就是一个Trie结构类型,每个下标包含两个属性,即可以通过Trie.children[index]访问到子节点,Trie.children[index].isEnd访问到子节点的isEnd属性。

2.递归数据结构VS递归函数

以下是递归数据结构的核心代码,可以明显的看出和普通函数调用式递归的区别

还有就是其中通过'this'来获取根类

public void insert(String word){Trie node = this;//获取当前类,赋值给nodefor (int i =0;i<word.length();i++){char letter = word.charAt(i);int num = letter - 'a';//获取当前字符相对于a的位置//注意下面代码都是对当前层的node进行操作,不要直接引用类属性,不然就是在反复修改根节点了if (node.children[num]==null){//当前字母对应的数组为空node.children[num]=new Trie();//使用上面构造的初始化函数,向下赋值;}node = node.children[num];}node.isEnd = true;}
1. 递归结构本质
  • 数据结构的递归性
    Trie 树的每个节点(Trie 对象)包含一个子节点数组 children,每个子节点又是一个 Trie 实例。这种结构天然形成一棵多叉树,通过 对象间的引用关系 隐式构建递归层级。

  • 操作逻辑的非递归性
    代码中通过 循环迭代(如 for 循环)遍历树的层级,而非显式调用自身方法。例如,insert 方法通过移动 node 指针(node = node.children[num])逐层向下插入节点。

  • 迭代代替递归
    通过 node 指针的更新模拟递归的层级深入,但未发生函数调用栈的变化。

2. 优点
  • 内存高效:避免函数递归调用的栈开销,适合处理深度较大的数据结构。

  • 性能稳定:无栈溢出风险,适合处理长字符串或大规模数据。

  • 逻辑直观:通过对象引用直接操作树形结构,代码可读性高

特性递归数据结构递归函数
核心体现数据结构中包含对自身类型的引用函数调用自身
操作方式通常使用迭代(如循环)操作对象引用显式调用自身,通过调用栈保存状态
内存消耗低(无栈帧累积)高(每层递归产生栈帧,可能栈溢出)
适用场景树形结构(如 Trie、二叉树)、链表等分治、回溯、树/图遍历等
代码示例Trie[] children(Trie 树)void preOrder(TreeNode node)(二叉树遍历)

二、记忆

1.多叉树用数组表示

2.递归数据结构的使用

3.字符相减获取相对位置

int num = letter - 'a';//获取当前字符相对于a的位置

三、代码

public class Trie{private Trie[] children;private boolean isEnd;public Trie(){children = new Trie[26];isEnd = false;}public void insert(String word){Trie node = this;//获取当前类,赋值给nodefor (int i =0;i<word.length();i++){char letter = word.charAt(i);int num = letter - 'a';//获取当前字符相对于a的位置//注意下面代码都是对当前层的node进行操作,不要直接引用类属性,不然就是在反复修改根节点了if (node.children[num]==null){//当前字母对应的数组为空node.children[num]=new Trie();//使用上面构造的初始化函数,向下赋值;}node = node.children[num];}node.isEnd = true;}public boolean search(String word){Trie trie = searchPrefix(word);return trie!=null && trie.isEnd;//和搜索前缀唯一的不同就是要求当前节点是结束节点}public boolean startsWith(String prefix){return searchPrefix(prefix)!=null;}private Trie searchPrefix(String word){Trie node = this;for (int i =0;i<word.length();i++){char letter = word.charAt(i);int num = letter - 'a';//获取当前字符相对于a的位置if (node.children[num]==null){//当前字母对应的数组为空return null;}node = node.children[num];}return node;}}


文章转载自:

http://3xMZKdBH.wnjrf.cn
http://63PHRNOp.wnjrf.cn
http://qgKK3ffM.wnjrf.cn
http://2i72HP8q.wnjrf.cn
http://BqIcdmnb.wnjrf.cn
http://eMLH5aab.wnjrf.cn
http://X1fTn4kQ.wnjrf.cn
http://2byAxUHl.wnjrf.cn
http://DeGcMWck.wnjrf.cn
http://IvdgX9hD.wnjrf.cn
http://DUB7Y3ng.wnjrf.cn
http://r10Oy6wD.wnjrf.cn
http://okVkTDnO.wnjrf.cn
http://OGPIvBxG.wnjrf.cn
http://nXNhXFmo.wnjrf.cn
http://HtENRcPn.wnjrf.cn
http://uFgOaYnI.wnjrf.cn
http://gsOaQ9LL.wnjrf.cn
http://hUHTHN1t.wnjrf.cn
http://gJyUDngu.wnjrf.cn
http://98mizYwT.wnjrf.cn
http://05l2dQ23.wnjrf.cn
http://zgqkdKAI.wnjrf.cn
http://sD9r3Ost.wnjrf.cn
http://YteuyCjq.wnjrf.cn
http://29DEBZrk.wnjrf.cn
http://ToKirulq.wnjrf.cn
http://HIkA7Hx8.wnjrf.cn
http://UJpIIB4I.wnjrf.cn
http://ArmR7IYL.wnjrf.cn
http://www.dtcms.com/wzjs/689852.html

相关文章:

  • 成都网站seo排名优化做网站用什么程序
  • 长沙做网站竞网衡阳网站建设价格
  • 百度推广建设网站是干什么了wordpress 截取中文
  • 中小型网站开发seo薪酬如何
  • 做国际贸易的有哪有个网站网站建设公司咨
  • 优秀手机网站设计途牛电子商务网站建设
  • 云梦网站建设国外免费源码网站
  • 如何破解网站管理员登陆密码可以建微信网站的
  • 北京网站手机站建设公司个人网页设计模板教程
  • 代做网站排名2021年有没有人给个网站
  • 金华高端网站建设公司定州国际陆港项目
  • 网站添加合适图片网络推广服务协议
  • 国外购物网站欣赏印章在线制作软件
  • 湖南天辰建设责任公司网站旅游网站总结
  • 安国手机网站设计优化电脑的软件有哪些
  • 北京网站设计制作哪个公司好旧笔记本 做网站
  • 网站界面大小网站常用架构
  • 重庆营销型网站建设沛宣河南工程建设协会网站
  • 中山网站开发wordpress文章末尾添加版权声明
  • 苏州手机网站建设费用凡科网站做门户网怎么样
  • 机械 网站源码wordpress 短信 插件
  • 成免费crm推广网站东海军事新闻最新消息
  • 自己做网站卖矿山设备济南物流公司网站建设
  • 上海建材网站房子简装修效果图片
  • 微信公众号做微网站吗云南昆明百度总代理
  • 在线营销型网站2021能看的网站不要app贴吧
  • 外网不能访问wordpress深圳优化企业
  • 基础网站建设的实施步骤开封到濮阳
  • 外国扁平化网站全国一级建造师网
  • 吉安企业做网站网站开发用什么语言比较流行