typedef struct node
{
int data;
struct node *next,*prev;
}harsha;
void create_leaf(harsha **pnode,int value)
{
harsha *temp=*pnode;
if(*pnode==NULL)
{
*pnode=(struct node *)malloc(sizeof(struct node));
if(!(*pnode))
{
printf("mem not allocated");
exit(0);
}
(*pnode)->data=value;
(*pnode)->prev=NULL;
(*pnode)->next=NULL;
}
else
{
if(value>(temp->data))
create_leaf(&(temp->next),value);
else if(value<temp->data)
create_leaf(&(temp->prev),value);
}
}
这是我为将新节点插入二进制搜索树而编写的函数。我的代码是否存在问题,因为我的Inorder,Preorder和Postorder遍历无法正常工作。
最佳答案
放一些printf看看指针是否匹配。从输出中可以看出,在8上有一些不为空的指针。 :)发送&pnode到函数时,您是否已将pnode初始化为null?我想就是那样。 :)