#include <iostream>
#include<math.h>
#include <limits.h>
typedef int DataType;
typedef struct BTreeNode{
DataType data;
struct BTreeNode *Left;
struct BTreeNode *Right;
}BinTreeNode;
typedef BinTreeNode *BinTree;
//先序遍历
void PreOrder(BinTree T){
if(T==NULL) return;
printf("%d",T->data);
PreOrder(T->Left);
PreOrder(T->Right);
}
//中序
void InOrder(BinTree T){
if(T==NULL) return;
InOrder(T->Left);
printf("%d",T->data);
InOrder(T->Right);
}
//后序
void PostOrder(BinTree T){
if(T==NULL) return;
PostOrder(T->Left);
PostOrder(T->Right);
printf("%d",T->data);
}
BinTree CreatBinTree_Recursion(){//递归建立二叉树
BinTree T;
int n;
scanf("%d",&n);
if(n<0) T=NULL;
else{
T=(BinTreeNode *)malloc(sizeof(BinTreeNode));
T->data=n;
T->Left=CreatBinTree_Recursion();
T->Right=CreatBinTree_Recursion();
}
return T;
}
int main() {
BinTree T;
T=CreatBinTree_Recursion();
printf("InOrder:");
InOrder(T);
printf("\n");
printf("PostOrder:");
PostOrder(T);
printf("\n");
printf("PreOrder:");
PreOrder(T);
printf("\n");
return 0;
}
二叉树的建立与遍历
最新推荐文章于 2024-09-16 14:31:09 发布