二叉树是一棵每个结点都不能有多于两个儿子的树。
实现
struct BinaryNode
{
Object element;
BinaryNode *left;
BinaryNode *right;
};
具有N个结点的每一棵二叉树都将需要N+1个NULL链,这些NULL链不显示画出。
表达式树,树叶是操作数,其他结点为操作符。
中缀表达式:递归地产生一个带括号的左表达式,然后打印出在根处的操作符,最后再递归地产生一个带括号的右表达式,对两个括号整体进行运算。这种方法(左,结点,右)称为中序遍历。
另一种是递归地打印出左子树、右子树,然后打印操作符,这叫后序遍历。
这两种都是从表达式树得到表达式的遍历策略。
从表达式构造表达式树:
参考Mark Allen Weiss《数据结构与算法分析c++描述》第三版,仅供学习交流之用,转发请注明原出处。