By - JInkunPosted on 2022年4月7日2023年4月9日Posted in 数据结构, 编程练习有向无环图表示算术表达式 今天一个童鞋问了我一个问题,沉思良久,做个博客记录一下。 题目描述: 用有向无环图描述表达式(A+B)*((A+B)/A),至少需要顶点的数目为几个? 分析: 1. 先画出算术表达式 (A+B)*((A+B)/A)的二叉树表示 2. (A+B)*((A+B)/A) 有重复的子表达式 (A+B),二叉树中可实现对子表达式的共享 所以: 相同的叶子节点可以共用: 所以至少需要五个顶点: *,+, /, A,B 各一个。 Tags:数据结构算法练习