对二叉树的遍历:
先序遍历:【先访问根节点】
先访问根节点,
再先序访问左子树,
再先序访问右子树; ————递归关系
中序遍历:【中间访问根节点】
中序遍历左子树,
再访问根节点,
再中序遍历右子树; ————递归关系
后序遍历:【最后访问根节点】
先中序遍历左子树,
再中序遍历右子树,
再访问根节点; ————递归关系
根据序列还原二叉树:
已知两种遍历序列求原始二叉树
通过先序和中序 或者 中序和后序我们可以还原出原始的二叉树,但是通过 先序和后序 是无法还原原始的二叉树;
示例:已知先序 和中序,求后序
先序:ABCDEFGH 中序:BDCEAFHG
思路:在先序中找到根节点A, 由中序可知:BDCE 是左子树, FHG是右子树(A的右边是右子树,A的左边是左子树);后面,类似推出来该树的结构;
树的应用:
1、树是数据库中数据组织一种重要形式;
2、操作系统子父进程的关系本身就是一颗树,(进程树)
3、面向对象语言中类的继承关系本身就是一颗树;
4、赫夫曼树