**
建立如图所示二叉树`
#include<stdio.h>
#include<stdlib.h>
using namespace std;
struct NodeBinaryTree
{
NodeBinaryTree *_left;
NodeBinaryTree *_right;
int _date;
};
NodeBinaryTree *CreatBinary()
{
NodeBinaryTree *pa = (NodeBinaryTree *)malloc(sizeof(NodeBinaryTree));
NodeBinaryTree *pb = (NodeBinaryTree *)malloc(sizeof(NodeBinaryTree));
NodeBinaryTree *pc = (NodeBinaryTree *)malloc(sizeof(NodeBinaryTree));
NodeBinaryTree *pd = (NodeBinaryTree *)malloc(sizeof(NodeBinaryTree));
NodeBinaryTree *pe = (NodeBinaryTree *)malloc(sizeof(NodeBinaryTree));
NodeBinaryTree *pf = (NodeBinaryTree *)malloc(sizeof(NodeBinaryTree));
NodeBinaryTree *pg = (NodeBinaryTree *)malloc(sizeof(NodeBinaryTree));
pa->_date = 'A';
pb->_date = 'B';
pc->_date = 'C';
pd->_date = 'D';
pe->_date = 'E';
pf->_date = 'F';
pg->_date = 'G';
pa->_left = pb;
pa->_right = pc;
pb->_left = pd;
pb->_right = pe;
pc->_left = NULL;
pc->_right = pf;
pd->_left = NULL;
pd->_right = NULL;
pe->_left = pg;
pe->_right = NULL;
pf->_left = pf->_right = NULL;
pg->_left = pg->_right = NULL;
return pa;
}
void PreTraverTree(NodeBinaryTree *pt)
{
if (pt != NULL)
{
printf("%4c", pt->_date);
if (pt->_left != NULL) PreTraverTree(pt->_left);
if (pt->_right != NULL) PreTraverTree(pt->_right);
}
}
void InTraverTree(NodeBinaryTree *pt)
{
if (pt != NULL)
{
if (pt->_left != NULL) InTraverTree(pt->_left);
printf("%4c", pt->_date);
if (pt->_right != NULL) InTraverTree(pt->_right);
}
}
void EndTraverTree(NodeBinaryTree *pt)
{
if (pt != NULL)
{
if (pt->_left != NULL) EndTraverTree(pt->_left);
if (pt->_right != NULL) EndTraverTree(pt->_right);
printf("%4c", pt->_date);
}
}
int main()
{
NodeBinaryTree *ps=CreatBinary();
cout << "前序遍历:";
PreTraverTree(ps);
cout << endl;
cout << "中序遍历:";
InTraverTree(ps);
cout << endl;
cout << "后序遍历:";
EndTraverTree(ps);
cout << endl;
return 0;
}
**
最后结果如下图
**