mirror of
https://gitee.com/apaki/unicstl.git
synced 2025-05-17 19:41:36 +08:00
iter的node一定是当前节点,因此cur的前缀就有些多余了
This commit is contained in:
parent
4691b848ef
commit
c70b007386
@ -17,7 +17,7 @@ struct _iterator
|
||||
{
|
||||
// ---------- private ----------
|
||||
void* _parent;
|
||||
void* _cur_node;
|
||||
void* _node;
|
||||
uint32_t _index;
|
||||
|
||||
uint32_t _order;
|
||||
|
10
src/deque.c
10
src/deque.c
@ -305,11 +305,11 @@ iterator_t deque_iter(struct _deque* self, enum _deque_order order)
|
||||
iter->_order = order;
|
||||
if(iter->_order == DEQUE_FORWARD)
|
||||
{
|
||||
iter->_cur_node = self->_head;
|
||||
iter->_node = self->_head;
|
||||
}
|
||||
else
|
||||
{
|
||||
iter->_cur_node = self->_tail;
|
||||
iter->_node = self->_tail;
|
||||
}
|
||||
return iter;
|
||||
}
|
||||
@ -335,7 +335,7 @@ const void* deque_iter_next(struct _iterator* iter)
|
||||
deque_t self = (deque_t)iter->_parent;
|
||||
void *obj = NULL;
|
||||
|
||||
struct _deque_node * cur_node = (struct _deque_node *)iter->_cur_node;
|
||||
struct _deque_node * cur_node = (struct _deque_node *)iter->_node;
|
||||
if(cur_node == NULL)
|
||||
{
|
||||
return NULL;
|
||||
@ -344,11 +344,11 @@ const void* deque_iter_next(struct _iterator* iter)
|
||||
obj = cur_node->obj;
|
||||
if(iter->_order == DEQUE_FORWARD)
|
||||
{
|
||||
iter->_cur_node = cur_node->next;
|
||||
iter->_node = cur_node->next;
|
||||
}
|
||||
else
|
||||
{
|
||||
iter->_cur_node = cur_node->prev;
|
||||
iter->_node = cur_node->prev;
|
||||
}
|
||||
|
||||
iter->_index += 1;
|
||||
|
15
src/graph.c
15
src/graph.c
@ -829,14 +829,14 @@ iterator_t graph_iter(struct _graph *self, enum _graph_search search_type, void
|
||||
|
||||
iter->_parent = self;
|
||||
iter->_index = 0;
|
||||
iter->_cur_node = self->_head->next;
|
||||
iter->_node = self->_head->next;
|
||||
|
||||
struct _graph_node *start_node = find_node(self, start);
|
||||
if (start_node == NULL)
|
||||
{
|
||||
goto done;
|
||||
}
|
||||
iter->_cur_node = start_node;
|
||||
iter->_node = start_node;
|
||||
|
||||
struct _graph_node *node = self->_head->next;
|
||||
while (node != NULL)
|
||||
@ -850,7 +850,7 @@ iterator_t graph_iter(struct _graph *self, enum _graph_search search_type, void
|
||||
{
|
||||
case GRAPH_BFS:
|
||||
{
|
||||
self->queue->push(self->queue, &iter->_cur_node);
|
||||
self->queue->push(self->queue, &iter->_node);
|
||||
}
|
||||
break;
|
||||
case GRAPH_DFS:
|
||||
@ -893,7 +893,7 @@ const void *graph_iter_next(struct _iterator *iter)
|
||||
{
|
||||
case GRAPH_BFS:
|
||||
{
|
||||
struct _graph_node *cur_node = iter->_cur_node;
|
||||
struct _graph_node *cur_node = iter->_node;
|
||||
struct _graph_edge *cur_edge = cur_node->edgehead;
|
||||
struct _graph_node *target = NULL;
|
||||
struct _graph_node *node = cur_node;
|
||||
@ -932,14 +932,13 @@ const void *graph_iter_next(struct _iterator *iter)
|
||||
cur_node = node;
|
||||
}
|
||||
|
||||
iter->_cur_node = cur_node;
|
||||
iter->_node = cur_node;
|
||||
obj = cur_node->obj;
|
||||
}
|
||||
break;
|
||||
case GRAPH_DFS:
|
||||
{
|
||||
// self->stack->push(self->stack, iter->_cur_node);
|
||||
struct _graph_node *cur_node = self->_iter._cur_node;
|
||||
struct _graph_node *cur_node = iter->_node;
|
||||
struct _graph_node *node = NULL;
|
||||
|
||||
stack_t stack = self->stack;
|
||||
@ -975,7 +974,7 @@ const void *graph_iter_next(struct _iterator *iter)
|
||||
}
|
||||
}
|
||||
}
|
||||
iter->_cur_node = cur_node;
|
||||
iter->_node = cur_node;
|
||||
obj = node->obj;
|
||||
}
|
||||
break;
|
||||
|
@ -257,7 +257,7 @@ iterator_t heap_iter(struct _heap* self)
|
||||
|
||||
iter->_parent = self;
|
||||
iter->_index = 0;
|
||||
iter->_cur_node = self->obj;
|
||||
iter->_node = self->obj;
|
||||
return iter;
|
||||
}
|
||||
|
||||
|
@ -313,7 +313,7 @@ static iterator_t queue_iter(struct _queue* self)
|
||||
|
||||
iter->_parent = self;
|
||||
iter->_index = 0;
|
||||
iter->_cur_node = self->_front;
|
||||
iter->_node = self->_front;
|
||||
return iter;
|
||||
}
|
||||
|
||||
@ -339,11 +339,11 @@ static const void* queue_iter_next(struct _iterator* iter)
|
||||
void *obj = NULL;
|
||||
|
||||
// base on linklist
|
||||
struct _queue_node * node = (struct _queue_node *)iter->_cur_node;
|
||||
struct _queue_node * node = (struct _queue_node *)iter->_node;
|
||||
if(node != NULL)
|
||||
{
|
||||
obj = node->obj;
|
||||
iter->_cur_node = node->next;
|
||||
iter->_node = node->next;
|
||||
}
|
||||
iter->_index += 1;
|
||||
return obj;
|
||||
|
@ -273,11 +273,11 @@ const void* stack_iter_next(struct _iterator* iter)
|
||||
if(self->_head->obj == NULL)
|
||||
{
|
||||
// base on linklist
|
||||
struct _stack_node* node = (struct _stack_node *)self->_iter._cur_node;
|
||||
struct _stack_node* node = (struct _stack_node *)iter->_node;
|
||||
if(node != NULL)
|
||||
{
|
||||
obj = node->obj;
|
||||
self->_iter._cur_node = node->next;
|
||||
iter->_node = node->next;
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -311,7 +311,7 @@ iterator_t stack_iter(struct _stack* self)
|
||||
|
||||
iter->_parent = self;
|
||||
iter->_index = 0;
|
||||
iter->_cur_node = self->_head->next;
|
||||
iter->_node = self->_head->next;
|
||||
return iter;
|
||||
}
|
||||
|
||||
|
@ -1158,7 +1158,7 @@ static iterator_t tree_iter(struct _tree* self, enum _tree_order order)
|
||||
|
||||
iter->_parent = self;
|
||||
iter->_index = 0;
|
||||
iter->_cur_node = self->_root;
|
||||
iter->_node = self->_root;
|
||||
|
||||
iter->_order = order;
|
||||
self->stack->clear(self->stack);
|
||||
@ -1256,7 +1256,7 @@ static const void* tree_iter_next(struct _iterator* iter)
|
||||
tree_t self = (tree_t)iter->_parent;
|
||||
void *obj = NULL;
|
||||
|
||||
struct _tree_node* cur_node = self->_iter._cur_node;
|
||||
struct _tree_node* cur_node = iter->_node;
|
||||
struct _tree_node* target_node = NULL;
|
||||
switch (iter->_order)
|
||||
{
|
||||
@ -1392,7 +1392,7 @@ static const void* tree_iter_next(struct _iterator* iter)
|
||||
}break;
|
||||
}
|
||||
|
||||
self->_iter._cur_node = cur_node;
|
||||
iter->_node = cur_node;
|
||||
obj = target_node->obj;
|
||||
iter->_index += 1;
|
||||
return obj;
|
||||
|
Loading…
Reference in New Issue
Block a user