/*
Copyright (c)2017,烟台大学计算机与控制工程学院
All rights reserved.
文件名称:第九周(1) 项目2 - 二叉树遍历的递归算法.cpp
作 者:孙仁圆
完成日期:2017年11月15日
版 本 号:v1.0
问题描述: 定义二叉树的链式存储结构,实现二叉树的先序、中序、后序遍历的递归算法,
输入描述: ”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”
程序输出: 二叉树先序、中序、后序的输出。
*/
#include <iostream>
#include <cstdio>
#include "btree.h"
using namespace std;
void PreOrder(BTNode *b)
{
if(b!=NULL)
{
cout<<b->data;
PreOrder(b->lchild);
PreOrder(b->rchild);
}
}
void InOrder(BTNode *b)
{
if(b!=NULL)
{
InOrder(b->lchild);
cout<<b->data;
InOrder(b->rchild);
}
}
void PostOrder(BTNode *b)
{
if(b!=NULL)
{
PostOrder(b->lchild);
PostOrder(b->rchild);
cout<<b->data;
}
}
int main()
{
BTNode *b;
CreateBTNode(b,"A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))");
cout<<"二叉树b:";
DispBTNode(b);
cout<<endl;
cout<<"先序遍历序列:\n";
PreOrder(b);
cout<<endl;
cout<<"中序遍历序列:\n";
InOrder(b);
cout<<endl;
cout<<"后序遍历序列:\n";
PostOrder(b);
cout<<endl;
DestroyBTNode(b);
return 0;
}