当前位置: 首页 > news >正文

6.4.3_有向无环图描述表达式

有向无环图:

有向图中不存在环即为有向无环图DAG图,即如下V0->V4->v3->V0或者V4->V1->v4就存在环不是有向无环图,即在一个路径中一个顶点不能出现2次?

DAG描述表达式:

 算术表达式用树来表示,咋表示????

在如下算术表达式中(c+d)*e部分重复,则可以在树中去掉*号重复指向的一部分,然后*号指向+号指向的,根据下边的图c+d也可合并即第三张图,然后把b合并即第4张图

2019年统考真题

把如下x+y合并即第二张图,再把x合并变成第三张图

 

解题方法-合并重复的式子不漏项方法:

合并时不需要合并操作数(因为各个操作数顶点在树中就一个,没有重复的)只需合并操作符

重点:分层、分层合并操作符(同层中的同一个类型的几个操作符并且指向的操作数都相同,则这几个操作符在该层可合并成1个,看第3、4张图)

过程:

1.各个操作数不重复地排成一排。a、b、c、d、e

2.标出各个运算符的执行顺序(根据加减乘除运算顺序标明)

3.按2标出的顺序开始分层给1列出的操作数加入操作符,如(1)为a+b则给a、b在第一层加+号,(2)为c+d的值在第一层给c、d加+号,(3)为b*(c+d)即需要用到第一层(2)+号的值,则在第2层加入*号指向b和第一层指向c、d的+号,(4)为需要用到第一层a+b的值*第2层b*(c+d)的值,则比最高层第二层再高一层添加*号指向第一层的+(指向a、b)和第二层的*(指向b和第一层的+号)依次类推即需要用到某层的值都需要在该层的基础上再加一层得到操作数不重复的数

4.合并各层操作符(只合并同层的重复的操作符)。第一层有几个都指向了c+d的+号操作符可合并,第二层的*号都指向e和+号可合并

 

练习:

第三张图为更改操作符顺序进行合并

 

知识回顾:

 

相关文章:

  • JAVA 项目中 maven pom.xml 和 properties 配置文件、spring 配置文件,以及环境变量的关系
  • 深入理解Istio:全面解析与实践指南
  • 向量数据库选型实战指南:Milvus架构深度解析与技术对比
  • Lua 脚本在 Redis 中的运用-22
  • 每日Prompt:龙虎斗
  • Oracle附加日志概述
  • 华为OD机试真题——字符串序列判定(2025B卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • Go语言中常见的6个设计模式
  • 非常适合初学者的Golang教程
  • pyhton基础【4】判断
  • 位运算的小结
  • 深度图数据增强-形态学腐蚀操作
  • 【MySQL系列】SQL 分组统计与排序
  • leetcode 2131. 连接两字母单词得到的最长回文串 中等
  • 财管-1-财务分析、评价和预测
  • Vue3 + TypeScript + el-input 实现人民币金额的输入和显示
  • 17. Qt系统相关:文件操作
  • 【医学影像 AI】医学影像 AI 入门:PyTorch 基础与数据加载
  • Seaborn库的定义与核心功能
  • 【Python Cookbook】迭代器与生成器(二)
  • 做电影网站程序好用吗/网站源码建站
  • 商业网站建设常识/网时代教育培训机构怎么样
  • 拖式网站建设/免费的网站域名查询565wcc
  • 网站建设小工具/白杨seo课程
  • 建设银网站/ciliba最佳磁力搜索引擎
  • 网站如何做品牌宣传海报/台州网站建设优化