您的位置:首页 > 其它

二叉树递归的创建及三种遍历(先序、中序、后序)

2017-10-13 19:12 381 查看
#include<stdio.h>

#include<iostream>

#include<algorithm>

#include<stdlib.h>

using namespace std;

#define status int

typedef struct bitnode 

{
int data;
struct bitnode *lchild;
struct bitnode *rchild;

} bitnode,*sq;

int r=0;

bitnode *q;

void createbitree(sq &T) 

{
char ch;
scanf("%c",&ch);
if(ch=='#')
T=NULL;
else 
{
T=(bitnode *)malloc(sizeof(bitnode));
T->data=ch;
if(r==0) 
{
q=T;
r=1;
}
createbitree(T->lchild);
createbitree(T->rchild);
}

}

void Preorder(sq &T) 

{
if(T!=NULL) 
{
printf("%c",T->data);
Preorder(T->lchild);
Preorder(T->rchild);
}

}

void inorder(sq &T) 

{
if(T!=NULL) 
{
inorder(T->lchild);
printf("%c",T->data);
inorder(T->rchild);
}

}

void postorder(sq &T) 

{
if(T!=NULL) 
{
postorder(T->lchild);
postorder(T->rchild);
printf("%c",T->data);
}

}

int main() 

{
bitnode *t;
printf("createbitree:");
createbitree(t);
t=q;
printf("Preorder:");
Preorder(t);
printf("\n");
printf("inorder:");
inorder(t);
printf("\n");
printf("postorder:");
postorder(t);
printf("\n");
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐