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

文章目录

定义

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

DAG描述表达式

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

构造DAG

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

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

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

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

相关推荐
今晚打老虎7 小时前
c++之提高A(前缀和)(第三课)
数据结构·c++·算法
不会就选b8 小时前
算法日常・每日刷题--<贪心>26
数据结构·算法
Logic10111 小时前
C语言/数据结构位运算题解:异或XOR找出书柜中编号只出现一次的那一层——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
青山木12 小时前
Hot 100 --- 下一个排列
java·数据结构·算法·leetcode
SelectDB技术团队13 小时前
Apache Doris 高性能 Open Lake Variant 读写技术解析(含对比数据)
数据结构·数据库·clickhouse·日志·apache doris·selectdb·湖仓架构升级
kiracrimson14 小时前
希尔排序:让插入排序不再怕逆序
数据结构·算法·排序算法
Logic10114 小时前
C语言/数据结构位运算题解:异或XOR找出星球探险中的“独特能量石“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
hnjzsyjyj16 小时前
洛谷 P1339:[USACO09OCT] Heat Wave G ← Bellman-Ford 算法
数据结构·bellman-ford 算法
SelectDB技术团队18 小时前
ClickHouse 存日志的能力边界:并发、检索与 trace 回放的实测对照
数据结构·数据库·clickhouse·日志分析·apache doris·日志存储
垆边人似月.18 小时前
华为算法题:最长连续递增子序列的变
数据结构·算法·leetcode