【发布时间】:2011-07-13 07:08:21
【问题描述】:
struct node* insert(struct node* node, int data)
{
if(node == NULL)
{
// if tree is empty
return NewNode( data );
}
else
{
if( node->data > data )
{
// data is less than node, add to left subtree
return node->left = insert(node->left, data);
}
else if( node->data <= data)
{
// data is more than node, add to right subtree
return node->right = insert(node->right, data);
}
// else return node
return node;
}
}
调用
node *p = new node();
p->data = 2;
//printf("%d",lookup(p,2));
insert( p, 3);
insert( p, 4);
insert( p, 5);
PrintPreOrder(p);
回报:2,5
void PrintPreOrder(node *node)
{
if(node==NULL)
{
return;
}
else
{
printf("%d ", node->data);
PrintPreOrder(node->left);
PrintPreOrder(node->right);
}
}
【问题讨论】: