1、二叉树的数据结构(数据域+指向左/右孩子节点的指针)
typedef struct tree
{
int data;
struct tree *left;
struct tree *right;
}Tree,*pTree;
2、创建二叉查找树
//创建二叉树(二叉查找树),返回根节点
pTree createTree(int *data,int len)
{
if (len<1)
{
cout<<"创建的树为空树!"<<endl;
return NULL;
}
pTree root=(pTree)malloc(sizeof(Tree));
root->data=data[0];
root->left=NULL;
root->right=NULL;
pTree current,back;
for (int i=1;i<len;i++)
{
pTree newNode=(pTree)malloc(sizeof(Tree));
newNode->data=data[i];
newNode->left=NULL;
newNode->right=NULL;
current=root;//每次插入新的节点时,current都指向root
while(current!=NULL)
{
back=current;
if (current->data>data[i])
current=current->left;
else
current=current->right;
}
if(back