树是一种非线性数据结构,是有n个结点构成的有限集合。
一、根结点、叶子结点
根结点每个树仅有一个,为最上面的结点,A为根结点。
叶子结点为下方没有分支的结点,图中C、D、E、F、G为叶子结点。
二、高度、深度、层
为说明上下次序的概念,有高度、深度、层的三种说法。
例:A为第一层,BCD为第二层、EFG为第三层
A高度为2、BCD高度为1、EFG高度度为0
A深度为0、BCD深度为1、EFG深度度为2
三、二叉树
普通二叉树:每个结点最多两个分支
满二叉树:除了叶子结点,每个结点都有两个分支,且所有叶子结点都在最后一层上。
完全二叉树: 从树的根结点,从上到下、从左到右依次填满结点。如下面树1为完全二叉树,而树2不满足从左到右依次填满的条件。
3.二叉树的遍历
前序遍历:根结点—》左子树—》右子树
中序遍历:左子树—》根结点—》右子树
后序遍历:左子树—》右子树—》根结点
前序:A-B-D-E-C-F-G
中序:D-B-E-A-F-C-G
后序:D-E-B-F-G-C-A