学习内容:
利用二叉树的中序遍历实现中缀表达式输出,用()来表明顺序
逻辑
1.递归参数与返回值
2.终止条件
3.单层逻辑
||
- 写出结束条件
- 不要把树复杂化,就当做树是三个节点,根节点,左子节点,右子节点
- 只考虑当前做什么,不用考虑下次应该做什么
- 每次调用应该返回什么
代码逻辑,将二叉树分为叶子,根,子树三类,(当然叶子也应属于一类特殊的子树,但明显对于子树根存放运算符的本题来说,它应当被单独处理)
所以单层逻辑:
1、空节点直接返回;
2、叶节点直接输出当前值;
3、非叶节点(子树),遍历开始前加“(”,遍历结束后加“)” //或者理解为简化三个节点的二叉树,遍历左之前加(,遍历右之后加 );
4、deep唯一作用:确保当前操作节点不为根;
学习产出:
void InOrder(Bitree T){
if(T==NULL) return;
else{
if(T->lchild==NULL&&T->rchild==NULL)