版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/HarvestWu/article/details/81192293
#include <bits/stdc++.h>
#define MaxSize 100
#define ArrayLen(array) sizeof(array)/sizeof(array[0])
/*
* Created by HarvestWu on 2018/07/24.
*/
using namespace std;
//定义二叉树结构
typedef struct BTNode
{
int key;
struct BTNode *lchild;
struct BTNode *rchild;
} BTNode;
//二叉排序树关键字插入
int BSTInsert(BTNode *&bt, int key)
{
if (bt==NULL)
{
bt = (BTNode*)malloc(sizeof(BTNode));
bt->lchild = bt->rchild = NULL;
bt->key = key;
return 1;
}
else
{
if (key == bt->key)
return 0;
else if (key < bt->key)
return BSTInsert(bt->lchild, key);
else return BSTInsert(bt->rchild, key);
}
}
//创建二叉排序树
void CreateBST(BTNode *&bt, int key[], int n)
{
bt = NULL;
for (int i = 0; i < n; ++i)
BSTInsert(bt, key[i]);
}
//二叉排序树中序遍历
void inOrder(BTNode *bt)
{
if (bt != NULL)
{
inOrder(bt->lchild);
cout << bt->key << " ";
inOrder(bt->rchild);
}
}
int main()
{
BTNode *bt;
int key[] = { 1, 5, 7, 6, 3, 4, 8, 9, 2 };
int n = ArrayLen(key);
CreateBST(bt, key, n);
inOrder(bt);
return 0;
}