mirror of
https://gitee.com/apaki/unicstl.git
synced 2025-05-18 03:51:35 +08:00
广度优先遍历:删除非必要代码
This commit is contained in:
parent
7a7af3152a
commit
6054e712e6
69
src/tree.c
69
src/tree.c
@ -31,8 +31,8 @@ static uint32_t tree_height_node(struct _tree* self, struct _tree_node* root)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
uint32_t height = 0;
|
uint32_t height = 0;
|
||||||
int32_t count_cur_level = 0;
|
uint32_t count_cur_level = 0;
|
||||||
int32_t count_next_level = 0;
|
uint32_t count_next_level = 0;
|
||||||
|
|
||||||
struct _tree_node* node = root;
|
struct _tree_node* node = root;
|
||||||
queue_t queue = queue_new(sizeof(struct _tree_node*));
|
queue_t queue = queue_new(sizeof(struct _tree_node*));
|
||||||
@ -1370,14 +1370,7 @@ static const void* tree_iter_next(struct _iterator* iter)
|
|||||||
if (!self->stack->empty(self->stack))
|
if (!self->stack->empty(self->stack))
|
||||||
{
|
{
|
||||||
self->stack->pop(self->stack, &cur_node);
|
self->stack->pop(self->stack, &cur_node);
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
cur_node = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(cur_node != NULL)
|
|
||||||
{
|
|
||||||
self->_iter._cur_node = cur_node;
|
self->_iter._cur_node = cur_node;
|
||||||
obj = cur_node->obj;
|
obj = cur_node->obj;
|
||||||
}
|
}
|
||||||
@ -1385,44 +1378,36 @@ static const void* tree_iter_next(struct _iterator* iter)
|
|||||||
case ORDER_BREADTH:
|
case ORDER_BREADTH:
|
||||||
case ORDER_BREADTH_R:
|
case ORDER_BREADTH_R:
|
||||||
{
|
{
|
||||||
struct _tree_node* node = cur_node;
|
|
||||||
queue_t queue = self->queue;
|
queue_t queue = self->queue;
|
||||||
if (!queue->empty(queue) && node != NULL)
|
if (!queue->empty(queue) && cur_node != NULL)
|
||||||
{
|
{
|
||||||
queue->pop(queue, &node);
|
queue->pop(queue, &cur_node);
|
||||||
if (self->_order == ORDER_BREADTH)
|
|
||||||
{
|
|
||||||
if (node->left != NULL)
|
|
||||||
{
|
|
||||||
queue->push(queue, &node->left);
|
|
||||||
}
|
|
||||||
if (node->right != NULL)
|
|
||||||
{
|
|
||||||
queue->push(queue, &node->right);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (node->right != NULL)
|
|
||||||
{
|
|
||||||
queue->push(queue, &node->right);
|
|
||||||
}
|
|
||||||
if (node->left != NULL)
|
|
||||||
{
|
|
||||||
queue->push(queue, &node->left);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
cur_node = node;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
cur_node = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(cur_node != NULL)
|
|
||||||
{
|
|
||||||
self->_iter._cur_node = cur_node;
|
self->_iter._cur_node = cur_node;
|
||||||
obj = cur_node->obj;
|
obj = cur_node->obj;
|
||||||
|
|
||||||
|
if (self->_order == ORDER_BREADTH)
|
||||||
|
{
|
||||||
|
if (cur_node->left != NULL)
|
||||||
|
{
|
||||||
|
queue->push(queue, &cur_node->left);
|
||||||
|
}
|
||||||
|
if (cur_node->right != NULL)
|
||||||
|
{
|
||||||
|
queue->push(queue, &cur_node->right);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (cur_node->right != NULL)
|
||||||
|
{
|
||||||
|
queue->push(queue, &cur_node->right);
|
||||||
|
}
|
||||||
|
if (cur_node->left != NULL)
|
||||||
|
{
|
||||||
|
queue->push(queue, &cur_node->left);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}break;
|
}break;
|
||||||
default:
|
default:
|
||||||
|
Loading…
Reference in New Issue
Block a user