修改iter的parent为_container,避免理解偏差

This commit is contained in:
建峰 2025-04-27 13:42:30 +08:00
parent c70b007386
commit 4aa966bb93
8 changed files with 25 additions and 25 deletions

View File

@ -16,10 +16,10 @@
struct _iterator
{
// ---------- private ----------
void* _parent;
void* _node;
uint32_t _index;
void* _container; // pointer to stack/queue/tree ...
void* _node; // current node
uint32_t _index; // current index
uint32_t _order;
// ---------- public ----------

View File

@ -300,7 +300,7 @@ iterator_t deque_iter(struct _deque* self, enum _deque_order order)
assert(self != NULL);
iterator_t iter = &self->_iter;
iter->_parent = self;
iter->_container = self;
iter->_index = 0;
iter->_order = order;
if(iter->_order == DEQUE_FORWARD)
@ -319,7 +319,7 @@ bool deque_iter_hasnext(struct _iterator* iter)
assert(iter != NULL);
assert(iter->parent != NULL);
deque_t self = (deque_t)iter->_parent;
deque_t self = (deque_t)iter->_container;
if(iter->_index < self->size(self))
{
return true;
@ -332,7 +332,7 @@ const void* deque_iter_next(struct _iterator* iter)
assert(iter != NULL);
assert(iter->parent != NULL);
deque_t self = (deque_t)iter->_parent;
deque_t self = (deque_t)iter->_container;
void *obj = NULL;
struct _deque_node * cur_node = (struct _deque_node *)iter->_node;

View File

@ -827,7 +827,7 @@ iterator_t graph_iter(struct _graph *self, enum _graph_search search_type, void
assert(self != NULL);
iterator_t iter = &self->_iter;
iter->_parent = self;
iter->_container = self;
iter->_index = 0;
iter->_node = self->_head->next;
@ -873,7 +873,7 @@ bool graph_iter_hasnext(struct _iterator *iter)
assert(iter != NULL);
assert(iter->parent != NULL);
graph_t self = (graph_t)iter->_parent;
graph_t self = (graph_t)iter->_container;
if (iter->_index < self->size(self))
{
return true;
@ -885,7 +885,7 @@ const void *graph_iter_next(struct _iterator *iter)
{
assert(iter != NULL);
assert(iter->parent != NULL);
graph_t self = (graph_t)iter->_parent;
graph_t self = (graph_t)iter->_container;
void *obj = NULL;
iter->_index += 1;

View File

@ -255,7 +255,7 @@ iterator_t heap_iter(struct _heap* self)
assert(self != NULL);
iterator_t iter = &self->_iter;
iter->_parent = self;
iter->_container = self;
iter->_index = 0;
iter->_node = self->obj;
return iter;
@ -266,7 +266,7 @@ bool heap_iter_hasnext(struct _iterator* iter)
assert(iter != NULL);
assert(iter->parent != NULL);
heap_t self = (heap_t)iter->_parent;
heap_t self = (heap_t)iter->_container;
if(iter->_index < self->size(self))
{
return true;
@ -279,7 +279,7 @@ const void* heap_iter_next(struct _iterator* iter)
assert(iter != NULL);
assert(iter->parent != NULL);
heap_t self = (heap_t)iter->_parent;
heap_t self = (heap_t)iter->_container;
void *obj = NULL;
uint32_t index = iter->_index;

View File

@ -181,7 +181,7 @@ static void list_print(struct _list* self)
static const void* list_iter_next(struct _iterator* iter)
{
list_t self = (list_t)iter->_parent;
list_t self = (list_t)iter->_container;
void *obj = self->obj + iter->_index * self->_obj_size;
iter->_index += 1;
return obj;
@ -189,7 +189,7 @@ static const void* list_iter_next(struct _iterator* iter)
static bool list_iter_hasnext(struct _iterator* iter)
{
list_t self = (list_t)iter->_parent;
list_t self = (list_t)iter->_container;
if(iter->_index < self->size(self))
{
@ -203,7 +203,7 @@ iterator_t list_iter(struct _list* self)
assert(self != NULL);
iterator_t iter = &self->_iter;
iter->_parent = self;
iter->_container = self;
iter->_index = 0;
return iter;
}

View File

@ -311,7 +311,7 @@ static iterator_t queue_iter(struct _queue* self)
assert(self != NULL);
iterator_t iter = &self->_iter;
iter->_parent = self;
iter->_container = self;
iter->_index = 0;
iter->_node = self->_front;
return iter;
@ -322,7 +322,7 @@ static bool queue_iter_hasnext(struct _iterator* iter)
assert(iter != NULL);
assert(iter->parent != NULL);
queue_t self = (queue_t)iter->_parent;
queue_t self = (queue_t)iter->_container;
if(iter->_index < self->size(self))
{
return true;
@ -335,7 +335,7 @@ static const void* queue_iter_next(struct _iterator* iter)
assert(iter != NULL);
assert(iter->parent != NULL);
queue_t self = (queue_t)iter->_parent;
queue_t self = (queue_t)iter->_container;
void *obj = NULL;
// base on linklist
@ -354,7 +354,7 @@ static const void* queue2_iter_next(struct _iterator* iter)
assert(iter != NULL);
assert(iter->parent != NULL);
queue_t self = (queue_t)iter->_parent;
queue_t self = (queue_t)iter->_container;
void *obj = NULL;
// base on array

View File

@ -267,7 +267,7 @@ const void* stack_iter_next(struct _iterator* iter)
assert(iter != NULL);
assert(iter->parent != NULL);
stack_t self = (stack_t)iter->_parent;
stack_t self = (stack_t)iter->_container;
void *obj = NULL;
if(self->_head->obj == NULL)
@ -296,7 +296,7 @@ bool stack_iter_hasnext(struct _iterator* iter)
assert(iter != NULL);
assert(iter->parent != NULL);
stack_t self = (stack_t)iter->_parent;
stack_t self = (stack_t)iter->_container;
if(iter->_index < self->size(self))
{
return true;
@ -309,7 +309,7 @@ iterator_t stack_iter(struct _stack* self)
assert(self != NULL);
iterator_t iter = &self->_iter;
iter->_parent = self;
iter->_container = self;
iter->_index = 0;
iter->_node = self->_head->next;
return iter;

View File

@ -1156,7 +1156,7 @@ static iterator_t tree_iter(struct _tree* self, enum _tree_order order)
assert(self != NULL);
iterator_t iter = &self->_iter;
iter->_parent = self;
iter->_container = self;
iter->_index = 0;
iter->_node = self->_root;
@ -1240,7 +1240,7 @@ static bool tree_iter_hasnext(struct _iterator* iter)
assert(iter != NULL);
assert(iter->parent != NULL);
tree_t self = (tree_t)iter->_parent;
tree_t self = (tree_t)iter->_container;
if(iter->_index < self->size(self))
{
return true;
@ -1253,7 +1253,7 @@ static const void* tree_iter_next(struct _iterator* iter)
assert(iter != NULL);
assert(iter->parent != NULL);
tree_t self = (tree_t)iter->_parent;
tree_t self = (tree_t)iter->_container;
void *obj = NULL;
struct _tree_node* cur_node = iter->_node;