# include <stdio.h>
# include <stdlib.h>
typedef struct BiTNode{
int data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void visit(BiTree T){
printf("%d",T->data);
}
void PreOrder1(BiTree T){ //先序遍历
if(T!=NULL){
visit(T);
PreOrder1(T->lchild);
PreOrder1(T->rchild);
}
}
void PreOrder2(BiTree T){ //中序遍历
if(T!=NULL){
PreOrder2(T->lchild);
visit(T);
PreOrder2(T->rchild);
}
}
void PreOrder3(BiTree T){ //后序遍历
if(T!=NULL){
PreOrder3(T->lchild);
PreOrder3(T->rchild);
visit(T);
}
}
int main (){
BiTree root=NULL;
root=(BiTree)malloc(sizeof(BiTNode));
root->data=1;
root->lchild=NULL;
root->rchild=NULL;
BiTNode * p=(BiTNode*)malloc(sizeof(BiTNode));
p->data=2;
p->lchild=NULL;
p->rchild=NULL;
root->lchild=p;
BiTNode * q=(BiTNode*)malloc(sizeof(BiTNode));
q->data=3;
q->lchild=NULL;
q->rchild=NULL;
root->rchild=q;
root->lchild=p;
BiTNode * s=(BiTNode*)malloc(sizeof(BiTNode));
s->data=4;
s->lchild=NULL;
s->rchild=NULL;
p->lchild=s;
BiTNode * w=(BiTNode*)malloc(sizeof(BiTNode));
w->data=5;
w->lchild=NULL;
w->rchild=NULL;
q->lchild=w;
BiTNode * e=(BiTNode*)malloc(sizeof(BiTNode));
e->data=6;
e->lchild=NULL;
e->rchild=NULL;
q->rchild=e;
PreOrder1(root);
printf("\n") ;
PreOrder2(root);
printf("\n");
PreOrder3(root);
return 0;
}
数据结构 ,树的创建与遍历(先序,中序,后序)
最新推荐文章于 2024-07-25 23:03:21 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)