定义:有且只有一个可称为根的节点、有若干个
互不相交的子树。
专业术语:
节点 父节点 子节点
子孙 堂兄弟
深度:从根节点到最底层节点的层数;
叶子节点:没有子节点的节点;
非终端节点 :非叶子节点;
度:子节点的个数;
树的分类:
一般树:任意一个子节点的个数不受限制;
二叉树:任意一个子节点的个最多两个,且子
节点位置不能改变;
分类:
一般二叉树
满二叉树:每一层节点数都是最大
完全二叉树:只删除了满二叉树的
最底层最右边的连续若干个节点。
森林:n个互不相交的树的集合;
树的存储:
二叉树存储:
连续存储(完全二叉树):
链式存储:
一般树存储:
双亲表示法:
孩子表示法:
双亲孩子表示法:
二叉树表示法:
将一个普通树转为二叉树:
设法保证任意一个节点
左指针域指向他的第一个孩子
右指针域指向他的兄弟
一个普通数转换成的二叉树没有右子树。
森林存储:
先把森林转换为二叉树再存储二叉树;
树的操作:
遍历:先序、中序、后序;
已知两种遍历求原始二叉树:
两种遍历中必有中序遍历的出左右子树,再由先后序的出根节点;