您的位置:首页 > 其它

二叉树的建立及遍历

2017-05-25 21:11 267 查看
#include<iostream>
using namespace std;

typedef struct node
{
struct node *lchild;
struct node *rchild;
char data;
}BiTreeNode, *BiTree;
BiTree T;
void createBiTree(BiTree &T)
{
char c;
cin >> c;
if('#' == c)
T = NULL;
else
{
T = new BiTreeNode;
T->data = c;
createBiTree(T->lchild);
createBiTree(T->rchild);
}
}
void pre(BiTree T)
{
if(T)
{
printf("%c ",T->data);
pre(T->lchild);
pre(T->rchild);
}
}

void center(BiTree T)
{
if(T)
{
center(T->lchild);
printf("%c ",T->data);
center(T->rchild);
}
}

void after(BiTree T)
{
if(T)
{
after(T->lchild);
after(T->rchild);
printf("%c ",T->data);

}
}

void ShowTraverseResult()//显示遍历结果
{
printf("先序遍历结果:");
pre(T);
printf("\n\n");
printf("中序遍历结果:");
center(T);
printf("\n\n");
printf("后序遍历结果:");
after(T);
printf("\n");
}
int main()
{

createBiTree(T);
ShowTraverseResult();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: