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

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和+号可合并

 

练习:

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

 

知识回顾:

 

http://www.lryc.cn/news/2386113.html

相关文章:

  • 力扣第157场双周赛
  • 青少年编程与数学 02-019 Rust 编程基础 19课题、项目发布
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(二十五) -> 端云一体化开发 -> 业务介绍(二)
  • LLaMA-Factory 微调模型与训练数据量对应关系
  • 数据库与Redis数据一致性解决方案
  • Spring Boot AI 之 Chat Client API 使用大全
  • 分身空间:手机分身多开工具,轻松实现多账号登录
  • 音视频之视频压缩及数字视频基础概念
  • Ubuntu 24.04部署安装Honeyd蜜罐
  • C++复习核心精华
  • Android中获取控件尺寸进阶方案
  • 云原生安全之PaaS:从基础到实践的技术指南
  • MCP技术体系介绍
  • 《深入探秘:从底层搭建Python微服务之FastAPI与Docker部署》
  • 深入解析Spring Boot与JUnit 5集成测试的最佳实践
  • 我的第1个爬虫程序——豆瓣Top250爬虫的详细步骤指南
  • Selenium 测试框架 - C#
  • JavaWeb:SpringBoot工作原理详解
  • 5.25本日总结
  • OpenGL Chan视频学习-6 How Shaders Work in OpenGL
  • dify_plugin数据库中的表总结
  • 【数据仓库面试题合集④】SQL 性能调优:面试高频场景 + 调优策略解析
  • HarmonyOS学习——UIAbility组件(上)
  • 【Linux】磁盘空间不足
  • 持续更新 ,GPT-4o 风格提示词案例大全!附使用方式
  • 线性代数之张量计算,支撑AI算法的数学原理
  • QStandardItemModel的函数和信号介绍
  • Python 内存管理机制详解:从分配到回收的全流程剖析
  • 【报错】Error attempting to get column ‘created_time‘ from result set.解决方法
  • Redis 3.0~8.0特性与数据结构全面解析