数据结构与算法第10周作业——二叉树的创建和遍历算法

一、二叉树的创建算法(递归方式)

二、二叉树的先序、中序和后序遍历算法

#include<stdio.h>
#include<stdlib.h>
typedef struct TNode
{
struct TNode *lchild;
int data;
struct TNode *rchild;
}TNode,*BTree;
void createBiTree(BTree &T)
{
char x;
scanf("%d",&x);
if(x!=0)
{
T=(TNode *)malloc(sizeof(TNode));
T->data=x;
createBiTree(T->lchild);
createBiTree(T->rchild);
}
else
{
T=NULL;
}
}
void preOrderTraverse(BTree T)
{
if(T!=NULL)
{
printf("%d",T->data);
preOrderTraverse(T->lchild);
preOrderTraverse(T->rchild);
}
}
void InOrderTraverse(BTree T)
{
if(T!=NULL)
{
InOrderTraverse(T->lchild);
printf("%d",T->data);
InOrderTraverse(T->rchild);
}
}
void AfterTraverse(BTree T)
{
if(T!=NULL)
{
AfterTraverse(T->lchild);
AfterTraverse(T->rchild);
printf("%d",T->data);

}
}
int main()
{
BTree T;
createBiTree(T);
printf("先序遍历输出结果为:");
preOrderTraverse(T);
printf("\n中序遍历输出结果为:");
InOrderTraverse(T);
printf("\n后序遍历输出结果为:");
AfterTraverse(T);
}

posted @ 2017-05-04 22:52  痞痞蟹,我们走  阅读(223)  评论(0编辑  收藏  举报