Changed avl_get() to use loop instead of recursion
This commit is contained in:
@@ -179,20 +179,20 @@ struct avltree_t *avl_remove(struct avltree_t *tree, int key)
|
|||||||
|
|
||||||
void *avl_get(struct avltree_t *tree, int key)
|
void *avl_get(struct avltree_t *tree, int key)
|
||||||
{
|
{
|
||||||
if(tree == NULL)
|
while(tree != NULL)
|
||||||
{
|
{
|
||||||
return NULL;
|
if(key < tree->key)
|
||||||
}
|
{
|
||||||
else if(key < tree->key)
|
tree = tree->left;
|
||||||
{
|
}
|
||||||
return avl_get(tree->left, key);
|
else if(key > tree->key)
|
||||||
}
|
{
|
||||||
else if(key > tree->key)
|
tree = tree->right;
|
||||||
{
|
}
|
||||||
return avl_get(tree->right, key);
|
else
|
||||||
}
|
{
|
||||||
else
|
return tree->value;
|
||||||
{
|
}
|
||||||
return tree->value;
|
|
||||||
}
|
}
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user