jsp网站开发期末大作业网站设计app

张小明 2026/1/2 23:35:10
jsp网站开发期末大作业,网站设计app,wordpress 调用时间,高端做网站公司哪家好二分搜索树#xff08;BST#xff09;是一种有序的二叉树#xff0c;也是数据结构中最常用的树形结构之一#xff0c;其核心特性是 “左小右大”#xff0c;这使得它的查找、插入、删除操作的平均时间复杂度可达 \(O(\log n)\)#xff08;最坏为 \(O(n)\)#xff0c;退化…二分搜索树BST是一种有序的二叉树也是数据结构中最常用的树形结构之一其核心特性是 “左小右大”这使得它的查找、插入、删除操作的平均时间复杂度可达 \(O(\log n)\)最坏为 \(O(n)\)退化为链表是高效的动态查找 / 排序数据结构。一、定义一棵二叉树满足以下条件则称为二分搜索树对于任意节点 node其左子树中的所有节点值都 小于 node.val其右子树中的所有节点值都 大于 node.val左、右子树本身也必须是二分搜索树递归定义。可选若需支持重复值可约定左子树 ≤ 当前节点 ≤ 右子树本文默认无重复值。二、BST特性1中序遍历结果有序对 BST 进行中序遍历左→根→右会得到一个升序排列的序列核心特性常用于验证 BST、排序、找前驱 / 后继节点2查找 / 插入 / 删除的高效性每次操作可排除一半子树类似二分查找3无唯一形态同一组数据可构造不同的 BST如插入顺序不同极端情况下会退化为单链表如按升序插入 1,2,3,4,5。三、BST性能特征四、应用场景1动态查找 / 排序支持高效的插入、删除、查找且中序遍历可直接得到有序序列2集合 / 映射实现如 Java TreeSet/TreeMap、C set/map底层为红黑树属于平衡 BST3范围查询如找 “大于 x 且小于 y 的所有节点”利用 BST 的有序性可快速定位边界4前驱 / 后继节点查找如在 BST 中找某个节点的前驱比它小的最大值、后继比它大的最小值用于排序、TopK 问题。五、案例分享题目1给定一棵二分搜索树和两个结点寻找这两个结点的最近公共祖先如下图所示的二分搜索树2和8的最近公共祖先为62和4的最近公共祖先为2。树形结构见下图。public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { if (null root) return null; // p and q are in the left side of the tree if (root.val q.val root.val p.val) return lowestCommonAncestor(root.left, p, q); // p and q are in the right side of the tree if (root.val q.val root.val p.val) return lowestCommonAncestor(root.right, p, q); // p and q are in the different sides of the treeq or p may be is the root node. return root; }题目2:给定一棵二叉树验证其是否为二分搜索树。思路1根据题目的要求结点的值大于其左孩子结点的值而小于其右孩子结点的值则中序遍历该二叉搜索树时会返回一个有序的列表。但是若是left.valroot.valright.val这种方式就不行了此种方式效率较低。import java.util.LinkedList; import java.util.List; public class LC98 { // 根据题意中序遍历二叉树看看是否升序排列 public boolean isValidBST(TreeNode root) { if (null root) return true; // 此时root肯定不为空 ListInteger nodeValueList new LinkedList(); inOrder(root, nodeValueList); for(int i 0;i nodeValueList.size() - 1;i) { if(nodeValueList.get(i1) nodeValueList.get(i)) return false; } return true; } private void inOrder(TreeNode root, ListInteger nodeValueList) { if(null root) return; inOrder(root.left, nodeValueList); nodeValueList.add(root.val); inOrder(root.right, nodeValueList); } public static void main(String[] args) { TreeNode root new TreeNode(2); root.left new TreeNode(1); root.right new TreeNode(3); System.out.println(result new LC98().isValidBST(root)); } }思路2直接使用二分搜索树的性质左root右public class LC98 { // 根据题意使用其性质直接判断 左root右 public boolean isValidBST(TreeNode root) { if (root null) return true; return valid(root, Long.MIN_VALUE, Long.MAX_VALUE); } public boolean valid(TreeNode root, long leftValue, long rightValue) { if (root null) return true; if (root.val leftValue || root.val rightValue) return false; return valid(root.left, leftValue, root.val) valid(root.right, root.val, rightValue); } public static void main(String[] args) { TreeNode root new TreeNode(10); root.left new TreeNode(5); root.right new TreeNode(15); root.right.left new TreeNode(6); root.right.right new TreeNode(20); System.out.println(result new LC98().isValidBST(root)); } }
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

屏蔽阿里云网站访问阿里云主机网站

风光储并网发电系统仿真模型 共直流母线式风光储:风力发电光伏发电储能三相逆变并网 ①光伏Boost:采用电导增量法来实现光伏板最大功率跟踪 ②风机:拓扑采用三相整流电路,控制采用MPPT控制 ③蓄电池储能:采用双向Buck_Boost电路&a…

张小明 2025/12/27 2:29:54 网站建设

购物网站开发案例教程长春企业网站制作优化

ruoyi-vue-pro企业级系统实战部署:从零到生产环境的完整指南 【免费下载链接】ruoyi-vue-pro 🔥 官方推荐 🔥 RuoYi-Vue 全新 Pro 版本,优化重构所有功能。基于 Spring Boot MyBatis Plus Vue & Element 实现的后台管理系统…

张小明 2025/12/27 2:29:53 网站建设

做视频图片博客网站市场营销策略

第一章:Open-AutoGLM认证失败处理优化在使用 Open-AutoGLM 框架进行自动化任务调度时,认证失败是常见问题之一,可能由令牌过期、权限不足或网络中断引发。为提升系统的健壮性,需对认证失败场景进行精细化处理。错误类型识别 常见的…

张小明 2025/12/27 2:29:53 网站建设

教育课程网站建设金华建设银行网站

基本介绍 1.GA-HIDMSPSO算法优化神经网络NSGAII多目标优化算法,工艺参数优化、工程设计优化!(Matlab完整源码和数据)。遗传算法辅助异构改进的动态多群粒子群优化算法(GA-HIDMS-PSO)是一种将最先进的粒子群…

张小明 2025/12/29 10:46:12 网站建设

有域名在本机上做网站深圳营销型网站建设服务商

gawk高级特性与应用实践 在编程学习中,阅读程序代码是提升编程水平的绝佳途径。对于awk程序,我们可以使用 #! 让其直接运行,也能通过 awk -f … 来调用。用awk重新实现标准POSIX程序是一项有趣的练习,它强大的表达能力能让我们用较少的代码实现功能完整且可用的程序。…

张小明 2025/12/31 22:34:42 网站建设