你这个要改变的是指针变量本身,所以,要传变量的地址过去才可以!即传参为二维指针!
#include
#include
using namespace std;
struct bitree
{
int element;
bitree *lchild;
bitree *rchild;
};
void insert(bitree **BT, int element)
{
bitree *newnode;
if(*BT==NULL)
{
newnode = (bitree *)malloc(sizeof(bitree));
newnode->element=element;
newnode->lchild=NULL;
newnode->rchild=NULL;
*BT = newnode;
}
else if(element<(*BT)->element)
{
insert( &(*BT)->lchild,element);
}
else if(element>(*BT)->element)
{
insert( &(*BT)->rchild,element);
}
}
void main()
{
int elements[10] = {45,24,54,12,37,93};
bitree *BT;
BT=NULL;
int i=0;
while(i{
insert( &BT,elements[i]);
i++;
}
printf("OK\n");
}