随笔分类 - 数据结构——二叉树
二叉树的遍历和表达式求值
摘要:表达式树 二叉树是表达式处理的常用工具,例如,a+b*(c-d)-e/f可以表示成如下所示的二叉树 其中,每个非叶子节点表示一个运算符,左子树是第一个运算数对应的表达式,右子树是第二个表达式对应的表达式。每个叶子节点都是数。 其在空间利用上也非常高效,节点数等于表达式的长度。 表达式转二叉树 lrj
阅读全文
摘要:表达式 简单的表达式只包含操作数、+、-、*、/、(、)。根据运算符与操作数的位置关系,可分为前缀表达式、中缀表达式、后缀表达式。 我们日常的算术运算用的就是中缀表达式,对中缀表达式的求值过程就是先将中缀表达式转换成后缀表达式,然后对该后缀表达式求值。(其实这两个步骤不必显式的表现出来,可以合二为一
阅读全文
摘要:一、二叉树的定义 二叉树(Binary Tree)的递归定义:二叉树要么为空,要么由根节点(root)、左子树(left subtree)和右子树(right subtree)组成,而左子书和右子树分别是一颗二叉树。注意,在计算机中,树一般是"倒置"的,即根在上,叶子在下。 二、二叉树的层次遍历 三
阅读全文