数据结构论坛

首页 » 分类 » 常识 » 程序员笔试面试必备最全的二叉树理论
TUhjnbcbe - 2023/9/16 20:38:00
文案策划招聘求职微信群 http://www.cgia.cn/news/chuangyi/1592214.html

数据结构是当今互联网企业招聘程序员必考的知识点,而其中最具代表性的数据结构之一就是二叉树,所以下面将对二叉树的所有考点逐一做详细介绍,以供大家参考、学习。

PS:下篇文章将对二叉树每个知识点用代码实现以供大家参考、学习。

二叉树

一、什么是二叉树?

计算机科学中定义二叉树为每个节点最多有两个子树的树型数据结构。二叉树的属性:

二叉树有唯一的根节点,如图中1节点子树就是从跟节点长出来的支树,分为“左子树”和“右子树”每一个左子树和右子树同时也是子二叉树二叉树是递归定义的,故一般二叉树的相关问题都可以尝试使用递归的思想来解决

二叉树示意图

扩展——二叉排序树(二叉搜索树),性质:若左子树不空,则左子树上所有节点的值均小于它的根节点的值;若右子树不空,则右子树上所有节点的值均大于它的根节点的值左、右子树也分别为二叉排序树没有值相等的节点(规定就是这样的,可能是因为不好处理吧)

二、二叉树遍历的四种方式(动图演示)

二叉树的遍历即对二叉树进行的顺序读取方式,分为先序遍历、中序遍历、后序遍历、层次遍历,所有的遍历方式都是相对于根节点而言的,请直接看动图。

先序遍历

先序遍历

中序遍历

中序遍历

后序遍历

后序遍历

层次遍历

层次遍历

三、二叉树的高度、深度、宽度、最大距离

节点的高度:高度是从下往上数节点之间路径的条数,如

节点3、4的高度是1节点2的高度是2节点5、6、7的高度是0节点的深度:深度是从根节点到该节点间路径的条数,如

节点2、3的深度为1节点4、5、6的深度为2节点7的深度为3二叉树的高度与深度是相等的,图中都是3。

二叉树的宽度:具有最多节点的那层中包含的节点数,如

图中节点最多的层是第3层,节点总数为3,所以宽度为3。

二叉树的最大距离(直径):二叉树中两个节点间路径条数的最大值,如

图中节点7和节点5或6的距离最大,为最大路径条数5。

二叉树的高度与深度

四、完全二叉树与满二叉树

完全二叉树:叶节点只能出现在最下层和次下层,且最下层节点的单子树只能在左边。

完全二叉树

满二叉树:所有节点都有两个子节点,最底层是叶子节点。性质:若树的深度为h,最大层数为k,且深度与最大层数相同,即k=h;叶子数是:2^(h-1)第k层的结点数是:2^(k-1)总结点数是:2^k-1(2的k次方减一)总节点数一定是奇数。树高:h=log2(n+1),n为层数。

满二叉树

总结

二叉树的理解不是很简单,而且二叉树有很多性质与变换,还是需要花些时间去理解与使用的。

C
1
查看完整版本: 程序员笔试面试必备最全的二叉树理论