wordpress农业站模板,昆明云南微网站制作,网站建设费入预付款什么科目,cdn能为网站上一.树的定义 树是一个具有层次结构的集合#xff0c;是由一个有限集和集合上定义的一种层次结构关系构成的。不同于线性表#xff0c;树并不是线性的#xff0c;而是有分支的。
树#xff08;Tree#xff09;是n#xff08;n0#xff09;个结点的有限集。 若n0是由一个有限集和集合上定义的一种层次结构关系构成的。不同于线性表树并不是线性的而是有分支的。
树Tree是nn0个结点的有限集。 若n0称为空树 若n0则它满足如下两个条件 1有且仅有一个特定的称为根Root的结点 2其余结点可分为mm0个互不相交的有限集T1,T2,T3,...,Tm,其实每一个集合本身又是一颗树并称为根的子树Sub Tree。 显然树的定义是一个递归的定义。
二.树的基本术语
结点数据元素以及指向子树的分支 根结点非空树中无前驱结点的结点 结点的度结点拥有的子数树 树的度树内各节点的度的最大值 叶子结点/终端节点度0的结点 非终端结点根结点以外的分支结点称为内部结点 结点的子树的根称为该结点的孩子该结点称为孩子的双亲 兄弟同一个双亲的结点 堂兄弟双亲在同一层的结点 结点的祖先从根到该结点所经分支上的所有结点。 结点的子孙以某结点为根的子树中的任一结点。
树的深度树中的结点的最大层次就是说有几层。 有序树树中结点的各子树从左至右有次序 无序树树种结点的各子树无次序 就像这棵树如果规定了T1T2T3有次序也就是说规定T1一定要在左边T2一定要在中间T3一定要在右边如果更换次序那么就成了另一颗树。那么这种树就叫作有序树。 如果规定更换次序仍是同一棵树那么这种树是无序树。 森林是mm0棵互不相交的树的集合。把根结点删除树就变成了森林。 一颗树可以看成是一个特殊的森林。 给森林中的各子树加上一个双亲结点森林就变成了树。 树一定是森林但森林不一定是树。
三.二叉树的定义
为什么要重点研究每结点最多只有两个“叉”的树 二叉树的结构简单规律性强可以证明所有的树都能转为唯一对应的二叉树不失一般性。 普通树多叉树若不转化为二叉树则运算很难实现。
二叉树是nn0个结点的有限集它或者是空集n0,或者由一个根结点及两科互不相交的分别称为这个根的左子树和右子树的二叉树组成。 特点1每个结点最多有俩孩子【二叉树中不存在度大于2的结点】 2子树有左右之分其次序不能颠倒。 3二叉树可以是空集合根可以有空的左子树或空的右子树。
注二叉树不是树的特殊情况它们是两个概念。 二叉树结点的子树要区分左子树和右子树即使只有一颗子树也要进行区分说明它是左子树还是右子树。 树当结点只有一个孩子时就无须区分它是左还是右的次序。因此二者是不同的。这是二叉树与树的最主要差别。 注虽然二叉树与树的概念不同但是关于树的基本术语对二叉树都适用。 四.二叉树案例引入--利用二叉树求解表达式的值
若表达式为“第一操作数 运算符 第二操作数”的形式则对应的二叉树中以左子树表示第一操作数右子树表示第二操作数根结点的数据域存放运算符若为一元运算符则左子树为空其中操作数本身又为表达式。