#include <stdio.h>
#include <stdlib.h>
typedef struct BiTNode{
int data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
BiTNode* init_Bitree(BiTNode* root){
root = (BiTNode *)malloc(sizeof(BiTNode));
root->lchild=NULL;
root->rchild=NULL;
return root;
}
void create_Bitree(BiTNode* root){
int n;
scanf("%d",&n);
if(n == 0) {
root->data = 0;
root->lchild = NULL;
root->rchild = NULL;
return;
}
root->data = n;
root->lchild = (BiTNode*) malloc(sizeof(BiTNode));
root->rchild = (BiTNode*) malloc(sizeof(BiTNode));
create_Bitree(root->lchild);
create_Bitree(root->rchild);
}
void PreOrder(BiTNode* root){
if(root == NULL) {
return;
}
if(root->data != 0) printf("%d\n",root->data);
PreOrder(root->lchild);
PreOrder(root->rchild);
}
void InOrder(BiTNode* root){
if(root == NULL){
return;
}
InOrder(root->lchild);
if(root->data != 0) printf("%d\n",root->data);
InOrder(root->rchild);
}
void PostOrder(BiTNode* root){
if(root == NULL){
return;
}
PostOrder(root->lchild);
PostOrder(root->rchild);
if(root->data != 0) printf("%d\n",root->data);
}
int main(){
BiTNode *root;
root=init_Bitree(root);
create_Bitree(root);
printf("前序遍历\n");
PreOrder(root);
printf("中序遍历\n");
InOrder(root);
printf("后序遍历\n");
PostOrder(root);
return 0;
}
二叉树的遍历
最新推荐文章于 2022-11-03 10:15:00 发布