树的概念:

根有子节点,子节点又是一个子树的根

T1,T2,T3换一个顺序就不是原来的树了,就称为有序树,T1,T2,T3换一个顺序就还是原来的树,就称为无序树

二叉树不是树的特殊情况,二叉树中的一个结点必须表明该结点是左节点还是右节点,即便它没有兄弟结点。而树不必区分左右。

 

 二叉树的性质

每层最少有1个结点

性质2:深度为k的二叉树总共最多有2k-1个结点

深度为k的二叉树最少有k个结点

二叉树的存储

顺序存储

实现: 按满二叉树的结点层次编号,依次存放二叉树中的数据元素

情况1:满二叉树和完全二叉树:

情况2:非完全二叉树和非满二叉树

链式存储

可以用来找前驱(双亲)

二叉树的遍历

深度优先搜索

递归或则迭代

按照一个方向往底下搜一直搜到终点我们再回退,然后再换下一个方向再往底下搜一直搜到终点我们再回退。

先序遍历

中序遍历

后序遍历

广度优先搜索

层序遍历

迭代的方法

根据遍历类型还原二叉树

根据先序和中序确定二叉树

根据后序和中序确定二叉树

以前序遍历为例二叉树的所有操作都是基于:对根节点进行操作,然后对左子树进行操作(递归),然后再对右子树进行操作(递归)

posted on 2023-07-29 20:40  小凉拖  阅读(9)  评论(0编辑  收藏  举报