树(学习笔记)

定义: 1、有且只有一个称为根的节点

           2、有若干个互不相交的子树,这些子树本身也是一棵树


*************************************

许多名称定义参照中国血缘关系理解

*************************************

节点的度:拥有子节点的个数

度为0的节点:节点的叶子或终端节点

度不为0的节点:终端节点或分支节点(分直节点又称为内部节点)

树的度是树内各节点的度的最大值

 

如图:D为A的孩子,A为D的双亲;同一个双亲的孩子称为兄弟

深度(高度):树中节点的最大层(根为第一层)

有序树:树中节点各子树看成从左至右是有序的(反之为无序树)

树:m(m>=0)颗互不相交的树的集合


一般树的储存

1.双亲表示法:求父节点方便

2.孩子表示法:求子节点方便

3.双亲孩子表示法:求父亲和孩子都很方便

4.二叉树表示法

        把一棵树转化为二叉树存储:设法保证任意一个子节点的左指针指向它的第一个孩子,右指针指向它第一个孩子的兄弟(只要满足树的条件就可以将树转化成二叉树)

森铃的储存

         先把森林转化为二叉树,再进行存储


树的遍历

先序遍历:(根左右)

                 先访问根节点

                 再先序访问左子树

                 再先序访问右子树

ABCHDEFG

中序遍历:(左根右)

                 先中序遍历左子树

                 再访问根节点

                 中序遍历右子树

HCBDAFGE

后续遍历:(左右根)

                 先后序遍历左子树

                 再后续遍历右子树

                 再访问根节点

HCDBFGEA

已知两种遍历序列求原始二叉树

            只有已知先中/后中两种遍历序列才能求原始二叉树

                已知先后两种遍历序列不行

1.已知先序和后序

1).先序首数据字母为二叉树根节点

2).中序中根节点字母左边为左子树内容根节点右边字母为根节点右子树内容

例.

先序:ABCDEFGH

中序:BDCEAFHG


后序:DECBHGFA

2.已知中序和后序两种序列

1).后序最后一个出现的字母为根节点

2).中序中根节点字母左边为左子树内容根节点右边字母为根节点右子树内容

例.

中序:BDCEAFHG

后序:DECBHGFA



先序:ABCDEFGH


猜你喜欢

转载自blog.csdn.net/qq_41262903/article/details/79418082
今日推荐