数据结构之表达式二叉树

本文介绍了数据结构中的表达式二叉树,详细阐述了其生成规则并以a+b+c-d为例进行解释。通过创建两个列表分别存储数据和运算符,然后依次构建节点,最终实现表达式二叉树的构建。文中还提供了用Java实现表达式二叉树的代码示例,包括节点类和生成树类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   java中的树是一种重要的非线性数据结构,我们之前学习的,数组,列表属于线性的数据结构, 直观的的看,Java中的树是数据元素(我们在Java的树中我们称为结点)按照分支的关系组织起来的结构,二叉树则是每个结点最多只有两个子树的有序树,在二叉树中的子树通常称为左子树和右子树。 

我们要讲的表达式二叉树是什么呢:怎么生成表达式二叉树呢?下面我举个列子来介绍一下 ,我们在生成表达式二叉树时有个规则:即结点位置放运算符而子节点位置放数据  比如1+2我们的树形结构就如下:

 下面我们以a+b+c-d这个表达式列子来详细介绍一下表达式而叉树:这表达式的数据有“a,b,c,d”符号有“+,+,-”。首先我们从表达式中取两个数据比如a和b,再从表达式中取一个符号“+”,如图所示

 接下来我们假定上图算出一个结果,我们把上图看做一个子节点并且命名为num我们继续从表达式中取一个数据c,一个符号“+”把上图看做作为一个左子树,如下面左图所示,最后实际生成如下面有图所示的结构

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值