#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct TreeNode {
int Data;
struct TreeNode* left;
struct TreeNode* right;
}*BinTree;
BinTree CreatByInsert(int X, BinTree BST)
{
if(BST == NULL)
{
BST = (BinTree)malloc(sizeof(struct TreeNode));
BST->Data = X;
BST->right = NULL;
BST->left = NULL;
}
else {
if (X < BST->Data)
BST->left = CreatByInsert(X, BST->left);
else if (X > BST->Data)
BST->right = CreatByInsert(X, BST->right);
else{}
}
return BST;
}
void PreOrderTraversal(BinTree BT)//前序
{
if(BT){
PreOrderTraversal(BT->left);
PreOrderTraversal(BT->right);
printf("%d,",BT->Data);
}
}
void InOrderTraversal(BinTree BT)//后序
{
if(BT){
InOrderTraversal(BT->left);
printf("%d,",BT->Data);
InOrderTraversal(BT->right);
}
}
int main()
{
char str[100];
int a[100];
int len = 0;
scanf("%s", str);
char *token = strtok(str,",");
while (token)
{
a[len++] = atoi(token);
token = strtok(NULL,",");
}
BinTree T = NULL;
for (int i = 0; i < len; ++i)
T = CreatByInsert(a[i],T);
PreOrderTraversal(T); printf("\n");
InOrderTraversal(T);
return 0;
}
【数据结构】BOJ-Binary search tree 二叉搜索树
最新推荐文章于 2021-10-24 21:47:44 发布