Java实现数据结构——二叉树

目录

引言

关于树的基础概念

二叉树

二叉树的性质

关于完全二叉树的编号问题

二分搜索树 (BST)及其他二叉树

二叉树的遍历问题

二叉树的基本操作

二叉树的建立,前、中、后序遍历

统计二叉树节点个数

统计叶子结点的个数

统计第k层节点个数

求二叉树的高度

判断二叉树中是否包含指定值val

借助队列,实现二叉树的层序遍历


引言

为什么会存在树结构?

**树:**高效的查找与搜索的语义。

企业中员工的分类就是一个“树”结构,若是一个线性结构,所有人都在一个“目录”里,比如当前公司中一共有300号员工,要找到一个特定的员工最坏情况下得找300次,O(n)。现在是个树结构,按照员工的职级进行分类,当前300个员工一共分为四级,搜索一个特定员工只需要4次即可找到,O(logn)——树的深度


操作系统OS的文件系统就是基于树结构进行文件管理的,若当前OS中所有文件都放在一个“目录”下,若当前操作系统有1亿个文件,最坏情况遍历1亿次才能找到特定元素。OS分为多级目录,我们只需要logN级别的查找次数。

关于树的基础概念

树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值