#include<stdio.h>
#include<stdlib.h>
#include <iostream>
typedef struct TreeNode {
int data;
struct TreeNode* right;
struct TreeNode* left;
}TreeNode;
TreeNode* bstNode(TreeNode* T, int data) {
if (T)
{
if (T->data==data)
{
return T;
}
else if (data<T->data)
{
bstNode(T->left, data);
}
else if (data>T->data)
{
bstNode(T->right, data);
}
}
else {
return NULL;
}
}
void inser(TreeNode** T, int data) {
if (*T==NULL)
{
*T = (TreeNode*)malloc(sizeof(TreeNode));
(*T)->data = data;
(*T)->left = NULL;
(*T)->right = NULL;
}
else if ((*T)->data==data)
{
return;
}
else if (data>(*T)->data)
{
inser(&(*T)->right, data);
}
else if (data<(*T)->data)
{
inser(&(*T)->left, data);
}
}
void preorder(TreeNode*T) {
if (T)
{
printf("%d", T->data);
printf("\n");
preorder(T->left);
preorder(T->right);
}
}
int main()
{
TreeNode* T = NULL;
int trymodel[6] = {4,5,19,23,2,8};
for (int i = 0; i < 6; i++)
{
inser(&T,trymodel[i]);
}
preorder(T);
}
参考: