基于二叉树的算术表达式计算与实现

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/^ \
1 + 1 1
/\
r5 i 女
w i( oe gt oe t ps ,I1 hl(d = e d (r olp S en N s+ 3 ) ) ) {
/\

/\
I一
2 r 3 2
、 、 ,

2 、

4、
/^\ \


/^\ \ຫໍສະໝຸດ Baidu
() +2 -)4 b 5 ( 32
igtr ryro- ot f e i i ( t > pr ( P ot o ) > gtr fyn e > pr e ii (o - ot) P ot d ) {
n o d e — — >lhl =r o ; c id o t n o d e — —
B N T o d e } r c h ild =
gt o et+ ol t ̄ ) e d(r ps ,xs , N s 1
r ot >l hid : lhid; o - c l c l
r o ->rh l = r h l ot ci d ci d; B No e * o e T d n d ;
{ p s+ 1 o = ;
基于二叉树的算术表达 式计算 与实现
E a u to f a i me i e p e so a e n b n r r e v l a in o r h t t c x r s i n b s d o i a y te
r u n NU L e r L ; t } eefc= \ ’ IUT NU L l ( =’0)  ̄ I L ; s h L I
d t SrCU ,t r r e o sl i s f r c n et g aa tU tr e e h e ae sl m o t n o ov r i d uo n
a i me i e pes n t b a y t e . T i p p r d c s s r h t x rs 0 i re t c  ̄ n r h a e i us s s e
D :1 .9 9 ji n 10 - 9 2 2 1 .3 1 5 OI 0 36 / . s .0 1 8 7 .0 2 1 .3 s
基金项 目:高职高专计算机类专业2 1年度规划课题 (Z 9 12 ) 02 J W50 16资助 1 1
c a Te(r 1 ps; r t re t , o) ee s+ } e e c = )) l h =。 s ’
r  ̄ / 1 p; e 7
陈海珠 郑卉
重 庆 电子 工 程 职 业 学 院 软 件 工 程 系 4 1 3 O51 摘 要 算 术表达 式 、栈 的操作 、二 叉树 的遍 历这 几 个概 念是 数据 结构 教 学 中的基 本 内容。算 术 表达 式 求值是 程序 设计 语 言编译 中的一个 最 基 本问题 ,也 是 栈应 用的一 个典 型例 子 。在 数据 结 构 中没有 解决 表达 式与二 叉树 之 间的 相 互转换 关 系。 本文 旨在研 究表 达 式向二 叉 树 的转换 ,即扫描 输 入的算 术 表达 式 ,生 成 表达 式 的二 叉树 ,再 以先序 遍历 此二 叉树 求 取 表达 式的 值 。为 由一 种算 术 表达 式得 出后 缀 、前 缀两种 表达 式提 供 了一种 新 思路 ; 同 时 以更 简便 的方 式实现 了算术 表达 式、二 叉 树 这 两者 之间的转换 。 关键 词 算 术 表 达 式 ;表 达 式树 ;二 叉 树 的 遍 历 ;
树 ;数 据 结 构
Ab va t s c Ar h t e p e s n sa k a d i r t e a e i me i x r s i , t c n bn y r e r t c o a f n a n a c n e t i t d ig a a tu t r . u d me t l o c p s n s u y n d t s r c u e Ev l t g r h ei × 『 0 i n f a i p ol s a a i ai m t e D u n t c 删 n s e o b s rb m o c e

} B o e *rae e(h r *t, it TN d cetTrec a s r n
结构 ,原 因在 于 只要以 不 同顺序遍 历 此树就 能够生成表达 式的不 同表示 。 表达式 树具有以 下特点 :1 )操作数都 是 叶子结点 ;2 )运算 符都是 内部结 点。 从 图 1 看 出 ,操 作符 和 操 作数 都 变成 可 了树 中的结 点。对 操作 数是 多位 数的 情况 , 为方 便处 理 ,在结 点的 定义 上 ,内部结 点 以 ot ̄存操作符 ,而叶子结 点以dt保存操 作 pr { aa 数 ,各结 点均 以l i ;rh d 别指 向结 点 c l ̄ ci分 h dN l 的左右子树 。表 达式树的构建 步骤如下 :
() —+ + I a 52 4 1
图1表达式树
i cr n f porm n aga e n f f y i l n on g o rga mi l ug sad oe o tpa Ni g n l c
a pc t n n t n e o te t c p l i i a c s f h sa k. I h c us o i o a s n e t o re f
/4 -
&x ) Is ) {
it p s = 0z n o l B N T o d e { 1c h ild =
gt o et+x l ps) e d(r is , O1; N s ) B N e* o T O r t= gt oe t ps, d o e d (r ol N s+ I s) x 1; )
相关文档
最新文档