#include <stdio.h>
#include <malloc.h>
typedef struct TreeNode *BinTree;
struct TreeNode{
int Data;
BinTree Left;
BinTree Right;
};
void preOrderTraveser(BinTree t);
BinTree createBinTree();
BinTree Insert(int X,BinTree BST);
BinTree Insert(int X,BinTree BST){
if(!BST){
BST = malloc(sizeof(struct TreeNode));
BST->Data = X;
BST->Left = BST->Right = NULL;
}
else{
if(X < BST->Data){
BST->Left = Insert(X,BST->Left);
}
else if(X > BST->Data){
BST->Right = Insert(X,BST->Right);
}
}
return BST;
}
BinTree createBinTree(){
BinTree treeNode;
int data;
scanf("%d",&data);
if(data){
treeNode = (BinTree)malloc(sizeof(BinTree));
treeNode->Data = data;
treeNode->Left = createBinTree();
treeNode->Right = createBinTree();
}else{
treeNode = NULL;
}
return treeNode;
}
void preOrderTraveser(BinTree t){
if(t){
printf("%d\n",t->Data);
preOrderTraveser(t->Left);
preOrderTraveser(t->Right);
}else{
return;
}
}
int main () {
BinTree T = createBinTree();
BinTree afterInsertTree;
int X;
printf("请输入要插入的值:\n");
scanf("%d",&X);
afterInsertTree = Insert(X,T);
printf("插入之后的树为:\n");
preOrderTraveser(afterInsertTree);
}