1.树的分类:
●一般树
●二叉树
●一般二叉树
●满二叉树
●完全二叉树
●森林
若干不交叉的树放在一起就是森林。
2.树的存储
●二叉树的存储
⊿连续存储
要使用连续存储,一定要先将二叉树补全为完全二叉树,然后再进行连续存储。
⊿链式存储
将每个节点定义成一个结构体,包含有三个组成部分,一部分为节点本身的数据, 一部分为左孩子,一部分为右孩子
●一般树的存储
●双亲表示法:
●孩子表示法:
●双亲孩子表示法:
●二叉树表示法:
将一般树转换成二叉树,再将此二叉树存储即可。
转换原则:保证每个节点的左指针域指向他的第一个孩子;
右指针域指向他的下一个兄弟。
●森林的存储
先把森林转换成二叉树,再存储二叉树。
3.二叉树的操作
●二叉树的遍历
●先序遍历
方法:先访问根节点,再先序遍历根节点的左子树,最后先序遍历根节点的右子树
●中序遍历
方法:先中序访问根节点的左子树,然后访问根节点,最后中序访问根节点的右子 树
●后序遍历
方法:先后序访问根节点的左子树,然后后序访问根节点的右子树,最后访问根节 点
●根据其中两种遍历结果求二叉树的结构(只有如下两种):
●根据先序遍历和中序遍历求二叉树
●根据中序遍历和后序遍历求二叉树