1053 字
3 分钟
考研专业课学习记录2026-07-04
2026-07-04

考研专业课学习记录 | 2026-07-04#

今日学习内容#

今日完成了一道基于表达式树输出标准中缀表达式的编程练习题,核心任务是将存储算术表达式的二叉树(表达式树)转换为符合运算优先级和括号规则的中缀表达式,过程中在括号的逻辑判断环节遇到了较大阻碍,是本次学习的核心难点。

AI知识点带复盘#

核心考点梳理(408数据结构-树与二叉树)#

  1. 表达式树的基本定义:表达式树是一种特殊的二叉树,其中内部节点代表算术运算符(+、-、*、/等),叶子节点代表操作数(常量或变量),通过遍历该树可以得到对应的算术表达式。
  2. 基础中缀输出逻辑:标准的中缀表达式输出对应二叉树的中序遍历(左子树 → 根节点 → 右子树),但直接遍历得到的结果会丢失运算优先级信息,无法保证表达式的正确性,因此需要额外处理括号。
  3. 括号添加的核心规则
    • 优先级判断:比较当前运算符与子节点运算符的优先级,其中*//优先级高于+/-
    • 子树位置区分
    1. 左子树:若父节点的运算符优先级高于左子节点的运算符优先级,则需要为左子树的表达式添加括号;若优先级相等,左子树无需额外括号(左结合场景下不影响结果)。
    2. 右子树:若当前节点的运算符优先级低于右子节点的运算符优先级,或优先级相等且当前运算符为左结合(如-、/),则需要为右子树的表达式添加括号。例如a-(b-c),若省略括号会被误读为a-b-c,因此必须为右子树b-c添加括号。
  4. 考研考察形式:该知识点既会以选择题形式考察表达式树遍历对应的正确表达式,也会以编程大题形式考察带括号的中缀表达式输出,常与递归遍历、栈的应用结合出题,属于二叉树应用的高频考点。

今日难点复盘#

本次的核心障碍在于混淆了左右子树的括号判断条件,一开始仅通过单一优先级比较逻辑处理所有子树,忽略了右子树的结合性特殊场景,例如当根节点为减号,右子树为加法运算时,必须为右子树添加括号才能保证表达式语义正确。

问题与反思#

  1. 初期对左右子树的括号判断逻辑区分不清,错误地使用了统一的优先级比较规则,导致生成的表达式出现运算顺序错误。
  2. 未考虑运算符结合性对括号添加的影响,仅通过优先级判断无法覆盖左结合运算符的右子树场景。
  3. 未提前梳理叶子节点的边界处理逻辑,一开始尝试为叶子节点添加括号,导致输出结果冗余。

收获与总结#

  1. 掌握了表达式树转带括号中缀表达式的完整实现逻辑,明确了优先级判断与子树位置、运算符结合性的联动规则。
  2. 梳理了该考点在408考研中的考察方向,能够针对性地准备选择题和编程题的解题思路。
  3. 学会了通过递归遍历结合额外判断条件拓展二叉树的应用场景,而非仅停留在基础的遍历操作层面。

💡 碎碎念:踏实吃透每一个知识点,不要放过细节难点!

文档内容由 AI 辅助生成

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

考研专业课学习记录2026-07-04
https://elysiaweb.vercel.app/posts/408/7-4/
作者
程翊雪
发布于
2026-07-04
许可协议
Unlicensed

部分信息可能已经过时

目录