树
专业定义:
通俗的定义:
专业术语:
节点
父节点
子节点
子孙
祖先
堂兄弟
深度:从根节点到最底层节点的层数。(根节点是第一层)
叶子节点:没有子节点的节点
非终端节点:实际就是非叶子节点
度:子结点的个数
任意一个节点的子节点的个数都不受限制
任意一个节点的子节点的个数最多为两个,且子节点的位置不可变更
分类:
n 个互不相交的树的集合
优点:
查找某个节点的父节点和子结点速度(也包括有没有子结点)很快.
缺点:
耗用的内存空间比较大.
求父节点方便。
求子节点方便。
求父节点和子结点都很方便。
把一个普通的树转换成二叉树来存储。
具体转换方法:
先把森林转化成二叉树,再存储二叉树
先访问根节点
再先序访问左子树
再先序访问右子树
先序遍历顺序:ABDCEFG
先序遍历顺序:ABCDEFLQMNS
中序遍历左子树
再访问根节点
再中序遍历右子树
中序遍历顺序:CDFELBAMSNQA
中序遍历左子树
中序遍历右子树
遍历根节点
后序遍顺序:FLEDCBSNMQA
通过先序和中序 或者 中序和后序
可以还原出原始的二叉树
但是通过先序和后序是无法还原出原始的二叉树的
换种说法:
只有通过先序和中序,或通过中序与后序
我们才能可以唯一的确定一个二叉树
示例1(已知先序和中序求后序):
先序:ABCDEFGH
中序:BDCEAFHG
画出图如下:
求后序:DECBHGFA
示例2(已知中序和后序求先序):
中序:BDCEAFHG
后序:BECBHGFA
画出图如下:
求先序:ABCDEFGH
本文链接:https://cloud.tencent.com/developer/article/1557678
本文采用CC BY-NC-SA 3.0 Unported协议进行许可,转载请保留此文章链接