数据结构与算法第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);
}