二叉树是什么
二叉排序树(Binary Sort Tree),又称二叉查找树(Binary Search Tree),亦称二叉搜索树.是数据结构中的一类.在一般情况下, 查询效率大于等于链表,插入效率低于链表. 二叉树查询修改时间复杂度【O(logn)-O(n)】,链表查询时间复杂度【O(n)】,链表修改时间复杂度【O(n)】,链表插入时间复杂度【O(1)】.
1.满二叉树形态图
2.偏二叉树形态图
二叉树定义
一个节点有或无左右叶子节点的数据结构,二叉树不好定义,重在分析二叉树特点。 ps:叶子节点就是没有子节点就算树的叶子节点
二叉树性质
1.左子树上所有结点的值均小于或等于它的根结点的值.
2.右子树上所有结点的值均大于或等于它的根结点的值.
3.左子树上所有结点的值均小于它右节点的值.
二叉树特点
1.非空二叉树第 i 层上至多有 2i 个结点(i ≥ 0)
2.高度为 k 的二叉树至多有 2k-1 个结点(k ≥ 0)
3. 满二叉树里的叶结点比分支结点多一个。
4. 满二叉树高度:n个结点的完全二叉树的高度 k = log(n+1)
二叉树查找遍历
3.二叉树遍历图
图3.二叉树遍历方式如下
先序遍历:考察到一个节点后,即刻输出该节点的值,并继续遍历其左右子树。(根左右)
中序遍历:考察到一个节点后,将其暂存,遍历完左子树后,再输出该节点的值,然后遍历右子树。(左根右)
后序遍历:考察到一个节点后,将其暂存,遍历完左子树,在遍历右子树后,再输出该节点的值。(左右根)
下面是其中的遍历结果
先序遍历:1 2 4 6 7 8 3 5 开始遍历节点:1
中序遍历:4 7 6 8 2 1 3 5 开始遍历节点:4
后序遍历:7 8 6 4 2 5 3 1 开始遍历节点:7
二叉树总结
二叉树是所有树结构的基础,也是最简单的树结构,在平衡的情况下,其性能比较好,时间查询复杂度为 O=logN,但是如果二叉树不平衡的情况下,其查询时间复杂度为 O=O(n),从数据结构与算法的角度讲二叉树是一种不稳定的数据结构,在实际使用中比较少,但是二叉树作为一种理解其他数据结构的入门基础是比较好的。
二叉树代码实现
git实现地址【目前未实现,待更新】
参考地址