有向无环图 DAG(描述表达式)

文章目录

定义

有向无环图:若有一个有向图不存在环 ,则称为有向无环图,简称为DAG图

DAG描述表达式

核心思想:合并相同 的子表达式【即顶点中不出现重复的操作数】。在 DAG 中,(a+b) 只存一份,让两个 * 操作都指向同一个 + 节点。一个结点可以拥有多个父结点。

构造DAG

  1. 把各个操作数不重复的排成一排
  2. 标出各个运算符的生效顺序(先后顺序不唯一)
  3. 按顺序加入运算符,注意 " 分层 "
  4. 从底向上 逐层检查同层的运算符是否可以合并

【注意顺序】:合并时要确保左右操作数的顺序

对于不可交换运算符 (减法 -、除法 /),必须严格区分左右孩子顺序;

对于可交换运算符(加法 +、乘法 *),为了便于查找,通常将左右操作数按某种规则排序(如字典序),确保 (a+b) 和 (b+a) 被识别为同一个子表达式。

相关推荐
爱吃苹果的日记本2 小时前
数据结构第一课
c语言·数据结构·数据库·学习·c#
张小姐的猫2 小时前
【AI大模型接入SDK】 —— Gemini接入封装
android·数据结构·数据库·c++·人工智能·python
闲坐含香咀翠4 小时前
从 132MB 到 25MB:列式存储怎么把 CPU 缓存命中率提上去的
前端·数据结构·性能优化
码少女4 小时前
数据结构——快速排序
数据结构
shehuiyuelaiyuehao4 小时前
算法39,位运算,消失的两个数字
java·数据结构·算法
多弗朗皮卡丘6 小时前
数据结构4:链表(下)
c语言·数据结构·链表
午彦琳7 小时前
2026.9.9
数据结构·算法·leetcode
橘子汽水1688 小时前
Leetcode 200,994岛屿数量,腐烂的橘子
数据结构·算法·leetcode
kiracrimson8 小时前
【无标题】
数据结构
zcmodeltech10 小时前
冷链物流沙盘模型控制系统设计——基于STM32与Modbus RTU的冷藏车、冷库全流程动态展示方案
数据结构·stm32·单片机·嵌入式硬件·物联网·能源