C++排序二叉树,我的传参是不是有问题?

2025-05-12 04:17:44
推荐回答(1个)
回答(1):

你这个要改变的是指针变量本身,所以,要传变量的地址过去才可以!即传参为二维指针!

#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");
}