二叉树与二分查找

1.基础种类

完全二叉树: 完全二叉树,移除最后一层节点后是满二叉树,且最后一层的节点都连续集中在最左面。

满二叉树:国际标准定义是除了叶结点外每一个结点都有左右子结点的二叉树;国内的定义是:除了叶结点外每一个结点都有左右子叶且叶子结点都处在最底层的二叉树。下图按照国际标准属于满二叉树,按照国内标准显然不是。
在这里插入图片描述

平衡二叉树:是一棵空树或它的任意节点的左右两个子树的高度差的绝对值不超过1

2.遍历:

前序遍历:root -> left -> right

中序遍历:left -> root -> right

后续遍历:left ->right -> root

层序遍历:按照层次遍历

3.前驱与后继

前驱节点:小于当前节点的最大值

后继节点:大于当前节点的最小值

4.应用举例:二分查找

必须满足前提条件:有序

a)时间复杂度:

n为待查询数据总量,最好情况下为O(1)

b)空间复杂度:
算法的空间复杂度并不是计算实际占用的空间,而是计算整个算法的辅助空间单元的个数

i.非递归方式:

由于辅助空间是常数级别的所以:空间复杂度是O(1);

ii.递归方式:

递归的次数和深度都是log2 N,每次所需要的辅助空间都是常数级别的:空间复杂度:O(log2N )


版权声明:本文为weixin_44526508原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。