java中的树是一种重要的非线性数据结构,我们之前学习的,数组,列表属于线性的数据结构, 直观的的看,Java中的树是数据元素(我们在Java的树中我们称为结点)按照分支的关系组织起来的结构,二叉树则是每个结点最多只有两个子树的有序树,在二叉树中的子树通常称为左子树和右子树。
我们要讲的表达式二叉树是什么呢:怎么生成表达式二叉树呢?下面我举个列子来介绍一下 ,我们在生成表达式二叉树时有个规则:即结点位置放运算符而子节点位置放数据 比如1+2我们的树形结构就如下:
下面我们以a+b+c-d这个表达式列子来详细介绍一下表达式而叉树:这表达式的数据有“a,b,c,d”符号有“+,+,-”。首先我们从表达式中取两个数据比如a和b,再从表达式中取一个符号“+”,如图所示
接下来我们假定上图算出一个结果,我们把上图看做一个子节点并且命名为num我们继续从表达式中取一个数据c,一个符号“+”把上图看做作为一个左子树,如下面左图所示,最后实际生成如下面有图所示的结构