网站用vps做dns东莞app下载安装

news/2025/9/23 11:54:40/文章来源:
网站用vps做dns,东莞app下载安装,自己做链接网站,企业网站上海 优帮云本篇博客将详细讲解二叉树 文章目录 树型结构简介基本概念表示形式 二叉树概念两种特殊的二叉树二叉树的性质二叉树的存储二叉树的简单创建二叉树的遍历前中后序遍历层序遍历 结尾 树型结构 简介 树是一种非线性的数据结构#xff0c;它是由n#xff08;n0#xff09…本篇博客将详细讲解二叉树 文章目录 树型结构简介基本概念表示形式 二叉树概念两种特殊的二叉树二叉树的性质二叉树的存储二叉树的简单创建二叉树的遍历前中后序遍历层序遍历 结尾 树型结构 简介 树是一种非线性的数据结构它是由nn0个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树也就是说它是根朝上而叶朝下的。它具有以下的特点 有一个特殊的结点称为根结点根结点没有前驱结点 除根结点外其余结点被分成M(M 0)个互不相交的集合T1、T2、…、Tm其中每一个集合 Ti (1 i m) 又是一棵与树类似的子树。每棵子树的根结点有且只有一个前驱可以有0个或多个后继。 树是递归定义的。 注意树形结构中子树之间不能有交集否则就不是树形结构。 基本概念 结点的度一个结点含有子树的个数称为该结点的度 如上图A的度为6 树的度一棵树中所有结点度的最大值称为树的度 如上图树的度为6 叶子结点或终端结点度为0的结点称为叶结点 如上图B、C、H、I…等节点为叶结点 双亲结点或父结点若一个结点含有子结点则这个结点称为其子结点的父结点 如上图A是B的父结点 孩子结点或子结点一个结点含有的子树的根结点称为该结点的子结点 如上图B是A的孩子结点 根结点一棵树中没有双亲结点的结点如上图A 结点的层次从根开始定义起根为第1层根的子结点为第2层以此类推 树的高度或深度最大的深度是树的高度如上图树的高度为4 非终端结点或分支结点度不为0的结点 如上图D、E、F、G…等节点为分支结点 兄弟结点具有相同父结点的结点互称为兄弟结点 如上图B、C是兄弟结点 堂兄弟结点双亲在同一层的结点互为堂兄弟如上图H、I互为兄弟结点 结点的祖先从根到该结点所经分支上的所有结点如上图A是所有结点的祖先 子孙以某结点为根的子树中任一结点都称为该结点的子孙。如上图所有结点都是A的子孙 森林由mm0棵互不相交的树组成的集合称为森林 表示形式 树结构相对线性表就比较复杂了要存储表示起来就比较麻烦了实际中树有很多种表示方式如双亲表示法孩子表示法孩子双亲表示法孩子兄弟表示法等等。我们这里就简单的了解其中最常用的孩子兄弟表示法。 class Node {int value;//树中存储的数据Node firstChild;//第一个孩子引用NOde nextBrother;//下一个兄弟引用 }例如 二叉树 概念 一棵二叉树是结点的一个有限集合该集合 要么为空。 要么是由一个根节点加上两棵被称为左子树和右子树的二叉树组成。 从上图可以看出 二叉树不存在度大于2的结点。 二叉树的子树有左右之分次序不能颠倒因此二叉树是有序树。 注意对于任意的二叉树都是由以下几种情况复合而成的 两种特殊的二叉树 满二叉树一棵二叉树如果每层的结点数都达到最大值则这棵二叉树就是满二叉树。也就是说如果一棵二叉树的层数为K且结点总数是2K-1则它就是满二叉树。 完全二叉树完全二叉树是效率很高的数据结构完全二叉树是由满二叉树而引出来的。对于深度为K的有n个结点的二叉树当且仅当其每一个结点都与深度为K的满二叉树中编号从0至n-1的结点一一对应时称之为完全二叉树。 要注意的是满二叉树是一种特殊的完全二叉树。 二叉树的性质 若规定根结点的层数为1则一棵非空二叉树的第i层上最多有2i-1(i0)个结点 若规定只有根结点的二叉树的深度为1则深度为K的二叉树的最大结点数是2K-1(k0) 对任何一棵二叉树, 如果其叶结点个数为n0度为2的非叶结点个数为n2则有n0n21 具有n个结点的完全二叉树的深度k为log2(n1)上取整 对于具有n个结点的完全二叉树如果按照从上至下从左至右的顺序对所有节点从0开始编号则对于序号为i的结点有 若i0双亲序号(i-1)/2i0i为根结点编号无双亲结点 若2i1n左孩子序号2i1否则无左孩子 若2i2n右孩子序号2i2否则无右孩子 二叉树的存储 二叉树的存储结构分为顺序存储和类似于链表的链式存储。 本篇博客先讲解链式存储。 二叉树的链式存储是通过一个一个的节点引用起来的常见的表示方式有二叉和三叉表示方式具体如下 //孩子表示法 class Node {int val;//数据域Node left;//左孩子的引用Node right;//右孩子的引用 }//孩子双亲表示法 class Node {int val;//数据域Node left;//左孩子的引用Node right;//右孩子的引用Node parent;//当前节点的根节点 }二叉树的简单创建 简单创建一个二叉树不是真正创建二叉树的方式 class BTNode {public char val;public BTNode left;public BTNode right;public BTNode(char val) {this.val val;} }public class BinaryTree {public BTNode createTree() {BTNode A new BTNode(A);BTNode B new BTNode(B);BTNode C new BTNode(C);BTNode D new BTNode(D);BTNode E new BTNode(E);BTNode F new BTNode(F);BTNode G new BTNode(G);BTNode H new BTNode(H ;A.left B;A.right C;B.left D;B.right E;C.left F;C.right G;E.right H;return A;} }创建的二叉树为 二叉树的遍历 前中后序遍历 学习二叉树结构最简单的方式就是遍历。所谓**遍历(Traversal)是指沿着某条搜索路线依次对树中每个结点均做一次且仅做一次访问。**访问结点所做的操作依赖于具体的应用问题(比如打印节点内容、节点内容加1)。 遍历是二叉树上最重要的操作之一是二叉树上进行其它运算之基础。 在遍历二叉树时如果没有进行某种约定每个人都按照自己的方式遍历得出的结果就比较混乱如果按照某种规则进行约定则每个人对于同一棵树的遍历结果肯定是相同的。如果N代表根节点L代表根节点的左子树R代表根节点的右子树则根据遍历根节点的先后次序有以下遍历方式 NLR前序遍历(Preorder Traversal 亦称先序遍历)——访问根结点—根的左子树—根的右子树。LNR中序遍历(Inorder Traversal)——根的左子树—根节点—根的右子树。LRN后序遍历(Postorder Traversal)——根的左子树—根的右子树—根节点。 实现代码如下 //前序遍历 void preOrder(Node root) {if (root null) {return;}System.out.print(root.val );preOrder(root.left);preOrder(root.right); }//中序遍历 void inOrder(Node root) {if (root null) {return;}inOrder(root.left);System.out.print(root.val );inOrder(root.right); }//后序遍历 void postOrder(Node root) {if (root null) {return;}postOrder(root.left);postOrder(root.right);System.out.print(root.val ); }层序遍历 层序遍历是从所在二叉树的根节点出发首先访问第一层的树根节点然后从左到右访问第2层上的节点接着是第三层的节点以此类推自上而下自左至右逐层访问树的结点的过程就是层序遍历。 示例代码 public void levelOrder(Node root) {QueueNode queue new LinkedList();if (root null) {return;}queue.offer(root);while (!queue.isEmpty()) {Node cur queue.poll();System.out.print(cur.val );if (cur.left ! null) {queue.offer(cur.left);}if (cur.right ! null) {queue.offer(cur.right);}} }结尾 本篇博客到此结束。 上一篇博客Java学习苦旅十七——栈和队列 下一篇博客Java学习苦旅十九——详解Java的堆和优先级队列

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/912453.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站建设一般用什么语言php网站开发有前景吗

文章目录 一、为什么使用token口令二、登录注册功能2.1 登录表单提交后端代码: 2.2 根据token获取完整用户信息代码实现: 2.3 注册时用户名占用校验代码实现: 2.4 注册表单提交代码实现: 三、头条首页功能3.1 查询所有头条分类3.2…

redis-list类型基本命令

redis-list类型基本命令redis存储数据的value可以是一个String类型的列表。列表中的数据会按照插入顺序进行排序,不过,该列表的底层实际上是一个没有 头节点的双向链表,所以对列表表头和表尾操作性能较高,但是对中…

游戏性能优化与逆向分析技术

【USparkle专栏】如果你深怀绝技,爱“搞点研究”,乐于分享也博采众长,我们期待你的加入,让智慧的火花碰撞交织,让知识的传递生生不息!一、前言一直以来性能优化的工作,非常依赖于工具,从结果反推过程,采集产品…

vue2 项目实例 动态路由菜单(四)

vue2 项目实例 动态路由菜单(四)动态路由涉及到 router、 store、 beforeEach、 permission权限1、触发登录事件Login.vue 监听路由变化,下次登录重定向上次页面watch: {$route: {handler: function(route) {this.r…

政务网站建设的三大核心功能是什么建设自己网站软件下载

一、简述静态网页和动态网页的区别。 静态网页: 静态网页是指运行于客户端的程序、网页、组件、纯粹HTML格式的网页; 如果有涉及网页内容的修改,就要修改源文件,重新上传到服务器。而且当网站信息量很大的时候,网页制作和维护都非常困…

重庆百度推广seo长春seo

很多同学不止一次和我反馈,我们的系统很混乱,主要表现在:应用的层次结构混乱:不知道应用应该如何分层、应该包含哪些组件、组件之间的关系是什么;缺少规范的指导和约束:新加一段业务逻辑不知道放在什么地方…

对于网站建设提出建议网站做APP麻烦吗

在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码…

网站后台链接怎么做平面设计手绘网站

原标题:个税起征点上调至5000,用Python算一算少交多少税今天出了一个重磅消息,个税起征点从3500上调到5000啦! 广大IT农民工的生活压力又减轻了一些,有没有 晚上加一个鸡腿,要不要~ 开心归开心,…

气血不足做网站网站收索流量

不能过帐凭证:本币计的税基为0 消息编号 FF759 诊断 尝试步成本币中计税基数为零的凭证,尽管外币中税金额和计税基数不为零, 系统响应 拒绝凭证输入。 步骤 再次输入凭证。 这个错误的原因,是因为四舍五入导致的税为零。根据百度的反馈&…

网站开发公司名单网站托管团队

1 需求 我们需要实现携带时间头的一系列照片如下显示,现在我们拿到了图片集合,肯定需要对图片根据实现进行分组显示 date picture picture picture picture picture picture picture picture picturedate picture picture picture picture picture 2 代码实现 fun getImag…

网站建设需要哪些企业资料石家庄校园兼职网站建设

8月26日,2023未来产业发展大会在杭州未来科技城国际会议中心开幕!会上,发布了未来科技城培育发展未来产业行动计划,启动了未来产业发展共同体,进行了未来产业公共服务平台签约仪式。未来科技城与加速科技签约共建集成电…

复古风格网站git做网站根目录

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:数据结构 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进…

app 微信 网站三合一企业宣传册模版

花了几天的时间,整出个 “hello spring boot”,并且把它从 2 搞到了 3。 纸上得来终觉浅!自己实践出真知!现在再回头来囫囵一遍,加深下印象。回想下从前自觉某一编程语言大都如此,先找到简单示例照着画一遍…

使用 feign 调用时对微服务实例进行选择

使用 feign 调用时对微服务实例进行选择1.概述 在 微服务 调用的时候,我们会需要将微服务实例进行分组的情况,我们有订单和库存服务,订单服务 和库存服务 分别 为 A,B两组服务实例。 A 服务分组服务A用户,B服务分组…

EI目录今年第3次更新!55本中国期刊被收录,附完整版下载

8月,EI Compendex数据库发布了最新版收录期刊目录。 目录实际更新时间为2025年7月24日 2025年截止8月份EI数据库已更新3次,更新时间分别为2025年1月、2025年4月和2025年7月。 本次目录共收录期刊5702本,其中包含Jou…

友点企业网站管理系统3d全屋定制设计软件

1.没镜像就拉取镜像 dockerhub中查看版本 官网 docker pull zookeeper:3.4.14 不加版本号也行,默认拉取最新版 创建并启动容器 docker run -p 2181:2181 --privilegedtrue --name zookeeper01 -d zookeeper –privilegedtrue 容器内用户开启root权限 docker ps…

程序员的未来:从技术岗位到全栈思维的进化之路 - 实践

程序员的未来:从技术岗位到全栈思维的进化之路 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&q…

envoy和nginx的区别

Envoy 和 Nginx 都是高性能的网络代理和反向代理服务器,广泛应用于现代分布式系统中。尽管它们在某些场景下功能重叠(如负载均衡、反向代理),但在设计目标、架构、功能特性和适用场景上存在显著差异。 以下是 Envo…

基于自适应差分进化算法的MATLAB实现

基于自适应差分进化算法(Adaptive Differential Evolution, ADE)的MATLAB实现一、算法原理 自适应差分进化算法通过动态调整缩放因子(F)和交叉概率(CR)提升全局搜索能力。核心改进包括:参数自适应:根据种群适应…

临沂专业网站建设公司哪家好做网站菜单背景图片

问你一句:「你知道 HTTP/1.1 该如何优化吗?」 我们可以从下面这三种优化思路来优化 HTTP/1.1 协议: 尽量避免发送 HTTP 请求在需要发送 HTTP 请求时,考虑如何减少请求次数减少服务器的 HTTP 响应的数据大小 下面,就针对这三种思路具体看看有哪些优化…