浅浅理解二叉树
之前看书的时候二叉树的概念很好懂,但是一直疑惑不知道二叉树究竟是干什么的,一直以为是特殊的数据存储结构。
附:后发现书上有一节为二叉搜索树,我还记了大把笔记,是我自己忘了= =...
后来在网上查过资料说是排序,但一直不是很理解。今天看二叉树讲解视频时看到这个图突发感悟,因此尝试在这里自行分析一下理清思路。
一、二叉树如何实现自己的排序查找呢?
个人想法目前如下:二叉树的前提是按照大小顺序去储存数据,将其存入二叉树以后其实就是一种另类的二分查找法。
以本图为例分析:
先讲下二分查找的规则,就是先从中间找起,大就往右找,小就往左找。很简单
而二叉树就是二分查找的具象化。先将中间数据放在最开始的节点处,也就是头地址所在的地方。然后同理,如果大则往右孩找,小则往左孩找。这个操作也对应二分查找的大往右,小往左。
有了这个思路以后我就把数字都列了出来并尝试按照二分来画一个树
显然这样不满足二叉树左满的定义,因此对其稍加调整,从左边开始两个为一组
于是得到了一个相似的二叉树,可以发现这种二叉树确实查找会比较方便,更是二分法的一种图像表达,在录入二叉树时也只需按照两个一组的方式进行数据录入即可。
平衡二叉树:
即右子树高度-左子树高度,如F处,右1左2,故1-2=-1. 而在J处,左3右4,4-3=1.