//
// binary_tree.cpp
#include "binary_tree.h"
// 二叉树的中序遍历
// 参数:二叉树根节点root
// 输出:二叉树的中序遍历,中间没有空格,末尾不换行。
void InOrder(BTNode* root)
{
// 请在这里补充代码,完成本关任务
/********** Begin *********/
if(root==NULL) return;
else{
InOrder(root->lchild);
cout<<root->data;
InOrder(root->rchild);
}
/********** End **********/
}
// 二叉树的中序遍历非递归算法
// 参数:二叉树根节点root
// 输出:二叉树的中序遍历,中间没有空格,末尾不换行。
void InOrder_iter(BTNode* root)
{
// 请在这里补充代码,完成本关任务
/********** Begin *********/
BTNode* p=root;
BTNode *st[1000];
int top=-1;
if(p!=NULL){
//TODO
p=root;
while(top>-1||p!=NULL){
//TODO
while(p!=NULL){
top++;
st[top]=p;
p=p->lchild;
}
if(top>-1){
p=st[top];
top--;
cout<<p->data;
p=p->rchild;
}
}
cout<<endl;
}
/********** End **********/
}