1 二叉树
二叉树是数据结构中一种重要的数据结构,也是树表家族最为基础的结构。
二叉树的定义:二叉树的每个结点至多只有二棵子树(不存在度大于2的结点)++++,二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2i-1个结点;深度为k的二叉树至多有2k-1个结点;对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1。
2 满二叉树
***一棵深度为k且有2k-1(2的k次幂减1)个结点的二叉树称为满二叉树。==========深度为k的完全二叉树,至少有2k-1个叶子节点,至多有2k-1个节点。***
二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。
3 遍历
二叉树遍历方式分为三种:先序,中序和后序。
可以以根节点的位置为参考来记遍历方式,在第一个为先序,中间为中序,最后为后序;
即:先序: 根左右;中序:左根右;后序:左右根。
先,中,后 遍历
4 二叉树的使用场景?
数组的搜索比较方便,可以直接用下标,但删除或者插入某些元素就比较麻烦。
链表与之相反,删除和插入元素很快,但查找很慢。
二叉排序树就既有链表的好处,也有数组的好处。
在处理大批量的动态的数据是比较有用。
文件系统和数据库系统一般都采用树(特别是B树)的数据结构数据,主要为排序和检索的效率。二叉树是一种最基本最典型的排序树,用于教学和研究树的特性,本身很少在实际中进行应用,因为缺点太明显了