1、什么是树
- 树是一种简单的非线性结构,明显的层次结构
- 每一个结点只有一个前结点,这个前结点被称为父结点,比如A是B/C/D/E的父结点
- 一棵树只有一个结点没有前结点,那就是根,我们称为根结点,图中的A就是根结点
- 每一个结点可以有多个后件,我们称为子结点,比如F/G/H是B的子结点
- 没有后件的结点,称为叶子结点,如F/G/H
- 一个结点所拥有的子结点的个数称为该结点的度,比如B结点的度为3,叶子结点的度为0
- 在树中,结点拥有最大的那个度,被认为是树的度,图中树的度为4
- 树中的结点数=所有结点的度之和+1,如图树的结点=3+2+3+2+4+1=15
- 根结点在第一层,依次往下,图中 A在第一层,B在第二层,F在第三层
- 同一层上的所有结点,他们的子结点都在下一层,如B/C/D/E的子结点都在第三层
- 树的最大层数,称为树的深度
- 以某结点的子结点为根构成的树,称为该结点的子树,如A的子树是以B为根结点构成的树
2、用树结构表示算术运算符 - 表达式中的每一个运算符在树中对应一个结点,称为运算符结点
- 运算符的每一个运算对象在树中为该运算符结点的子树(从左到右)
- 运算对象中的单变量均为叶子结点,比如a/b/c/d/e/h/g/s/t/x/y
3、树的存储 - 多重链表存储树
- 第一个字段存储序号,第二个字段存储结点值,第三个字段存储度,后面具体还有多少列的子结点,根据树的度来,树的度是多少就是多少列个子结点
- 子结点字段中存储序号,可以根据具体的序号查到子结点的数据