如何构建完全二叉排序树?

二叉排序树

简明说,左子树的值都比父结点的小;右子树的值都比父结点的大。

完全二叉树

简明说,按照一个父结点两个左右孩子,从第一层开始,从左往右,没有孩子是空缺的树,就是完全二叉树

理解完全二叉树关系

如果把二叉树的根结点视为1,那么它的左孩子就是2 × 1,右孩子就是2 × 1 + 1,以此类推都成立;
所以,判断是否叶子结点,可以用结点自身的序号,与所有结束数来比较,该结点没有左孩子,那么两倍其序号一定小于结点总数,

理解二叉排序树的关系

二叉排序树,左 -> 根 -> 右,值由小到大,这符合中序遍历。故,中序遍历的思想,可以直接应用在二叉排序树上。

完全二叉排序树

完全二叉树的层序可以用数组来存储,并且从1开始,后面的关系都是确定。
而二叉排序树,通过中序遍历得到的其实就是从小到大的序列
以上两个特点结合,用数组存储完全二叉树的层序,用中序思想遍历之,然后从小到大插入数值,即可得到完全二叉排序树。

发布了146 篇原创文章 · 获赞 42 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/SmartLoveyu/article/details/97770793
今日推荐