首先定义一课树和结点
#include<stdio.h>
#include<stdlib.h>
typedef struct node{
int data;
struct node* left;
struct node* right;
}Node;//树结点
typedef struct{
Node *root;
} Tree;
然后插入结点
这里我想插入结点之后为一棵二叉排序树
(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;
(3)左、右子树也分别为二叉排序树;
(4)没有键值相等的节点。
我这里以插入结点的数列int arr[7]={6,8,2,1,4,3,9} 为例
void insert(Tree *tree,int value)
{
Node* node=(Node*)malloc(sizeof(Node));
node->data=value;
node->left=NULL;
node->right=NULL;
//当数为空时,将结点放到根结点上
if (tree->root==NULL)
{
tree->root=node;