java的数据结构

本文转自互联网

1、二叉树:非线性数据结构,常被用于实现二叉查找树和二叉堆

二叉树的第i层至多有2的 i -1次方个结点;深度为k的二叉树至多有2^(k) -1个结点;对任何一棵二叉树T。

满二叉树

完全二叉树

平衡二叉树

2、

二叉树的遍历:

遍历是对树的一种最基本的运算,所谓遍历二叉树,就是按一定的规则和顺序走遍二叉树的所有结点,使每一个结点都被访问一次,而且只被访问一次。由于二叉树是非线性结构,因此,树的遍历实质上是将二叉树的各个结点转换成为一个线性序列来表示。

递归算法:

 

<1>先序遍历:

 

<2>中序遍历

<3>后序遍历

<4>层次遍历

 

非递归算法:

<1>先序遍历:

【思路】:访问T->data后,将T入栈,遍历左子树;遍历完左子树返回时,栈顶元素应为T,出栈,再先序遍历T的右子树。

<2>中序遍历

<3>后序遍历

<4>层次遍历

即按照层次访问,通常用队列来做。访问根,访问子女,再访问子女的子女(越往后的层次越低)(两个子女的级别相同)

3、二叉树查找

查找树的创建(createTree)

java培训的时候老师给举了一个例子,假设有如下数组4,1,45,78,345,23,12,3,6,21

首先选定4为root,然后遍历剩下的数字,如果大于等于4则放到4的右侧,小于4放到4的左侧,最后构建成的树:所有的左孩子都小于父节点,所有的右孩子都大于等于父节点。如下图:

 

 

2.      遍历查找树(displayTree)

按照左中右的顺序遍历树,结果为:1,3,4,6,12,21,23,45,78,345,遍历的结果就是已经排好序的数字。

 

3.      查找树中的节点(searchTree)

从根节点开始,如果大于等于根节点,则查找根节点的右侧;如果小于根节点,则查找根节点的左侧,直到查找到节点。

比如要查找12:

比4大,往右走;

        比45小,往左走;

        比23小,往左走;

        找到12

 

4、二叉排序树

转载于:https://www.cnblogs.com/jinshiyill/p/4682744.html

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

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

相关文章

AssertJ的SoftAssertions –我们需要它们吗?

编写好的单元测试的规则之一是&#xff0c;它应该出于某种原因而失败&#xff0c;因此&#xff0c;单元测试应该测试一种逻辑概念。 有时很难在每个测试中拥有一个断言。 为了遵循规则&#xff0c;我们可能在一个测试中每个对象具有多个断言。 但是&#xff0c;在单个测试中存…

早上起来CSDN的PC端主页积分变成了0

没有违法&#xff0c;没有乱纪&#xff0c;这是什么鬼&#xff1f;我刚才百度了一下&#xff0c;很多大牛都有类似的经历&#xff0c;心里舒服多了 平台BUG还是挺多的&#xff0c;说不准哪天就轮到你啦&#xff0c;哈哈&#xff01;&#xff01;

Fofa搜索技巧

Fofa搜索技巧&#xff08;理论加实践的整理&#xff09; 题记 最近在整理以前的知识&#xff0c;不过最近出现职业病了&#xff0c;打开fofa看站点就停不下来。我把常用的fofa查询语句记录下来&#xff0c;方便查阅。钟馗之眼和他有区别也异曲同工。 https://fofa.so/ http://…

魔兽世界阿拉索人数最多服务器,魔兽世界8.3哪个区人多_wow8.3服务器人数统计介绍_3DM网游...

魔兽世界8.3人口最多大区是很多玩家都非常关心的一件事情&#xff0c;很多玩家都想在这个新版本去最多的服务器&#xff0c;很多玩家都想知道服务器人口&#xff0c;来看看魔兽世界8.3哪个区人多&#xff0c;wow8.3服务器人数统计介绍。8.3人口最多大区介绍魔兽世界8.3安苏大区…

如何系统的学习javaScript?赶紧看看吧

当今如果要开发现代网站或web应用(包括互联网创业),都要学会JavaScript。而面对泛滥的JavaScript在线学习资源,却是很难找到一份高效而实用的方法去学习这个“web时代的语言”。有一点需要注意,几年前我们需要知道一个真正的服务器端语言(比如PHP,Rails,Java,Python 或…

Shiro-550反序列化漏洞复现

0x01 漏洞简介Apache Shiro是一款开源安全框架&#xff0c;提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用&#xff0c;同时也能提供健壮的安全性。 Apache Shiro 1.2.4及以前版本中&#xff0c;加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可…

IIS-ShortName-Scanner使用

000 漏洞简介 Microsoft IIS在实现上存在文件枚举漏洞&#xff0c;攻击者可利用此漏洞枚举网络服务器根目录中的文件。 危害&#xff1a;攻击者可以利用“~”字符猜解或遍历服务器中的文件名&#xff0c;或对IIS服务器中的.Net Framework进行拒绝服务攻击。 001 工具简介 J…

我的世界中国版服务器地图文件在哪,我的世界中国版手机版联机的地图保存在哪 | 手游网游页游攻略大全...

发布时间&#xff1a;2017-05-12我的世界战舰设计图 手机版战舰怎么做.那下面给大家分享的是玩家自己在手机版中手撸的一个战舰建筑哦~那感兴趣的玩家不妨进来看看他是怎么建造战舰的哦~希望大家喜欢. 游戏园我的世界官方群:325049520 二群:25607 ...标签&#xff1a;我的世界 …

kali NETCAT NC的使用

文章目录 nc的常用选项NC具有的常用功能telnet / 获取banner信息传输文本信息传输文件/目录加密传文件端口扫描远程克隆硬盘远程控制NCAT TCPDUMP简单用法 nc的常用选项 -l 开启监听模式&#xff0c;用于入站链接 -p 开放本地端口 -n 远程连接&#xff0c;后面要跟上端口 -v …

如何循序渐进的学习javaScript呢,请听我慢慢道来!

大家可以参考知乎上的这篇文章&#xff0c;我觉得还不错&#xff0c;分享给你们 https://www.zhihu.com/question/19713563

win10修改服务器地址,win10 修改服务器地址

win10 修改服务器地址 内容精选换一换通过华为云创建的ECS服务器默认使用华为云提供的内网DNS进行解析。内网DNS不影响ECS服务器对公网域名的访问。同时&#xff0c;还可以不经Internet&#xff0c;直接通过内网DNS访问其他云上服务内部地址&#xff0c;如OBS、SMN等&#xff0…

centos8如何安装yum源(详细步骤)

进入目录 cd /etc/yum.repos.d //进入/etc/yum.repos.d目录查看并删除/etc/yum.repos.d目录下所有的配置文件 ll //查看当前目录的所有文件 rm -rf ./* //删除当前的所有文件下载centos8的镜像源 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors…

2048游戏详解

由于最近在百度IFE看到有2048任务&#xff0c;所以昨天兴趣一来自己也做了一个。大概花了五个小时完成&#xff0c;不过不足之处是操作时没有滑动效果。昨晚新增了手机版本&#xff0c;流畅度还可以&#xff0c;不过由于没有滑动&#xff0c;游戏过程显得很突兀啊&#xff0c;且…

vulhub安装教程

0x00 vulhub介绍 Vulhub是一个基于docker和docker-compose的漏洞环境集合&#xff0c;进入对应目录并执行一条语句即可启动一个全新的漏洞环境&#xff0c;让漏洞复现变得更加简单&#xff0c;让安全研究者更加专注于漏洞原理本身。 大哥你等会&#xff0c;你刚才讲的docker我听…

sublime主题安装

网上发现与之前最相近的两款皮肤分别是Theme – Soda与Flatland。这里就记录一下安装与使用方法。 方法一&#xff1a;手动下载安装&#xff1a; 1.下载安装SublimeText2&#xff0c;这个我就不说了。网上的版本有多个&#xff0c;可以自行选择。也可下载使用最新的SublimeText…

WebCrack:网站后台弱口令批量检测工具

经过这么长时间的测试终于算是可以上线了&#xff0c;写篇文章跟大家分享一下自己的开发思路吧 >注&#xff1a;本工具借鉴吸收了TideSec的web_pwd_common_crack很多优秀的思路&#xff0c;在此基础上增加了很多拓展功能使其更加强大&#xff0c;在这里给TideSec的大佬点个赞…

前端常见的安全性问题有哪些?

安全性 前端安全问题有哪些? XSS 跨站请求攻击XSRF 跨站请求伪造上边这两个问题,前端也只是辅助,主要还是靠后端XSS原理 在博客里可以写文章,同时偷偷插入一段<script>代码。发布博客,有人查看博客内容打开博客时,就会执行插入的js攻击代码在攻击代码中,获取cook…

(fofa信息收集骚操作)windows查看文件的md5值

1、winr 输入cmd进入控制界面 2、certutil -hashfile XXXX md5(XXXX为绝对路径) Linux下查看文件md5值&#xff1a; 进入文件目录&#xff0c;使用md5sum加文件名&#xff0c;例如md5sum test.txt 像fofa的语法里有可以查找js的md5值&#xff0c;这样就可以收集到更多信息了&…

二叉树性质及遍历

一、二叉树的定义 树的每个结点至多只有二棵子树(不存在度大于2的结点)&#xff0c;树的子树有左右之分&#xff0c;次序不能颠倒。 二、二叉树的性质 (1) 在非空二叉树中&#xff0c;第i层的结点总数不超过, i>1&#xff1b;(2) 深度为h的二叉树最多有个结点(h>1)&#…

利用最新Apache解析漏洞(CVE-2017-15715)绕过上传黑名单

目标环境&#xff1a; 比如&#xff0c;目标存在一个上传的逻辑&#xff1a; <?php if(isset($_FILES[file])) {$name basename($_POST[name]);$ext pathinfo($name,PATHINFO_EXTENSION);if(in_array($ext, [php, php3, php4, php5, phtml, pht])) {exit(bad file);}mo…