织梦dedecms微信微网站模板做网站加盟

张小明 2026/3/2 16:31:24
织梦dedecms微信微网站模板,做网站加盟,个人网站建设研究意义,石碣企业网站建设公司一、概念二叉排序树#xff08;也叫二叉搜索树#xff09;是一种基于 “左小右大” 规则的有序二叉树特点#xff1a;左子节点的值 小于 父节点的值右子节点的值 大于 父节点的值每个节点由 3 部分组成#xff08;类 / 对象结构#xff09;#xff1a;lChild#xff1a;…一、概念二叉排序树也叫二叉搜索树是一种基于 “左小右大” 规则的有序二叉树特点左子节点的值小于父节点的值右子节点的值大于父节点的值每个节点由 3 部分组成类 / 对象结构lChild左子节点引用data节点存储的数据rChild右子节点引用二、节点定义package com.qcby.Tree; public class TreeNode { public TreeNode lChild; // 左子节点 public TreeNode rChild; // 右子节点 public Integer data; // 节点数据 // 构造方法初始化节点数据 public TreeNode(Integer data) { this.data data; } }三、二叉排序树的相关操作包括创建插入节点、遍历、查询1. 新建插入节点插入节点的逻辑遵循 “左小右大” 的规则步骤如下若树为空root null新节点直接作为根节点若树非空循环判断新节点与当前节点的大小新节点值大于当前节点向右子树查找直到右子节点为空插入新节点新节点值小于 / 等于当前节点向左子树查找直到左子节点为空插入新节点。package com.qcby.Tree; import java.util.LinkedList; public class BinaryTree { TreeNode root; // 二叉树根节点 // 向二叉排序树插入节点 public void create(Integer value) { TreeNode newNode new TreeNode(value); // 情况1树为空新节点作为根 if (root null) { root newNode; return; } // 情况2树非空循环查找插入位置 TreeNode curNode root; while (true) { if (curNode.data newNode.data) { // 新节点更大走右子树 if (curNode.rChild null) { curNode.rChild newNode; return; } curNode curNode.rChild; } else { // 新节点更小/相等走左子树 if (curNode.lChild null) { curNode.lChild newNode; return; } curNode curNode.lChild; } } } }2. 遍历操作二叉排序树支持 4 种常见遍历方式分别对应不同的访问顺序1先序遍历根→左→右// 先序遍历 public void beforeOrder(TreeNode node) { if (node null) { return; } System.out.print(node.data ); // 访问根 beforeOrder(node.lChild); // 遍历左子树 beforeOrder(node.rChild); // 遍历右子树 }2中序遍历左→根→右二叉排序树的中序遍历结果是升序序列// 中序遍历 public void inOrder(TreeNode node) { if (node null) { return; } inOrder(node.lChild); // 遍历左子树 System.out.print(node.data ); // 访问根 inOrder(node.rChild); // 遍历右子树 }3后序遍历左→右→根// 后序遍历 public void afterOrder(TreeNode node) { if (node null) { return; } afterOrder(node.lChild); // 遍历左子树 afterOrder(node.rChild); // 遍历右子树 System.out.print(node.data ); // 访问根 }4层次遍历广度优先按层级访问通过队列实现依次访问每一层的节点// 层次遍历 public void levelOrder(TreeNode root) { if (root null) { return; } LinkedListTreeNode queue new LinkedList(); queue.add(root); while (!queue.isEmpty()) { TreeNode node queue.poll(); System.out.print(node.data ); // 访问当前节点 if (node.lChild ! null) { queue.add(node.lChild); // 左子节点入队 } if (node.rChild ! null) { queue.add(node.rChild); // 右子节点入队 } } }3. 节点查询利用 “左小右大” 的特性递归查找目标节点// 递归查询指定节点 public TreeNode find(TreeNode root, Integer data) { if (root null) { // 节点为空未找到 return null; } if (root.data.equals(data)) { // 找到目标节点 return root; } if (root.data data) { // 目标值更大查右子树 return find(root.rChild, data); } else { // 目标值更小查左子树 return find(root.lChild, data); } }
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

有没有专门做艺术的网站天猫网站建设目的

3步解锁音乐魔法:智能歌词同步全攻略 【免费下载链接】lrcget Utility for mass-downloading LRC synced lyrics for your offline music library. 项目地址: https://gitcode.com/gh_mirrors/lr/lrcget 还在为本地音乐库缺少同步歌词而烦恼吗?智…

张小明 2026/1/15 7:15:38 网站建设

制作网站网页域名的公司国内最新新闻事件今天

模型的强大,必须以严格的伦理约束和安全机制为前提。GPT-5.2 在推理能力和可靠性上的巨大飞跃,在解锁前所未有的生产力的同时,也使恶意利用、内容偏见和 Deepfake(深度伪造)等风险达到了新的高度。OpenAI 必须在模型的…

张小明 2026/1/15 7:13:37 网站建设

做足球网站前景织梦网站上传及安装步骤

第一章:PHP扩展升级失败的根源探析在现代Web开发中,PHP扩展的升级是维护系统性能与安全的关键环节。然而,许多开发者在执行升级操作时频繁遭遇失败,其背后原因往往涉及环境依赖、版本兼容性及配置管理等多个层面。依赖冲突与版本不…

张小明 2026/1/15 7:11:36 网站建设

深圳互助资金盘网站开发杭州比较有名的设计院

这里我们定义快捷键来操作 funckey q move /移动/ 按下快捷键q进入移动命令,为了方便移动和布局时的准确与快捷,在我们进入move(左下角会显示move命令,无命令时显示为空闲)命令后,我们可以在查找&#xf…

张小明 2026/1/15 7:09:35 网站建设

广东高端网站设计公司价格无锡网站建设 微信公众号

vJoy虚拟摇杆终极指南:从零到精通的完整教程 【免费下载链接】vJoy Virtual Joystick 项目地址: https://gitcode.com/gh_mirrors/vj/vJoy 还在为找不到合适的游戏控制器而烦恼吗?vJoy虚拟摇杆让你在Windows系统中轻松创建虚拟控制器,…

张小明 2026/1/15 7:07:34 网站建设

网站建设需要学那些crm客户管理系统的功能有哪些

YOLOv5训练日志分析:Loss曲线怎么看? 在实际目标检测项目的开发过程中,模型跑完第一个epoch后,开发者最关心的问题往往是:“这模型到底有没有在学?” 准确率还没上来,mAP还在爬升,但…

张小明 2026/1/15 7:05:33 网站建设