修改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 struct _iterator
{ {
// ---------- private ---------- // ---------- private ----------
void* _parent; void* _container; // pointer to stack/queue/tree ...
void* _node;
uint32_t _index;
void* _node; // current node
uint32_t _index; // current index
uint32_t _order; uint32_t _order;
// ---------- public ---------- // ---------- public ----------

View File

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

View File

@ -255,7 +255,7 @@ iterator_t heap_iter(struct _heap* self)
assert(self != NULL); assert(self != NULL);
iterator_t iter = &self->_iter; iterator_t iter = &self->_iter;
iter->_parent = self; iter->_container = self;
iter->_index = 0; iter->_index = 0;
iter->_node = self->obj; iter->_node = self->obj;
return iter; return iter;
@ -266,7 +266,7 @@ bool heap_iter_hasnext(struct _iterator* iter)
assert(iter != NULL); assert(iter != NULL);
assert(iter->parent != 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)) if(iter->_index < self->size(self))
{ {
return true; return true;
@ -279,7 +279,7 @@ const void* heap_iter_next(struct _iterator* iter)
assert(iter != NULL); assert(iter != NULL);
assert(iter->parent != NULL); assert(iter->parent != NULL);
heap_t self = (heap_t)iter->_parent; heap_t self = (heap_t)iter->_container;
void *obj = NULL; void *obj = NULL;
uint32_t index = iter->_index; 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) 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; void *obj = self->obj + iter->_index * self->_obj_size;
iter->_index += 1; iter->_index += 1;
return obj; return obj;
@ -189,7 +189,7 @@ static const void* list_iter_next(struct _iterator* iter)
static bool list_iter_hasnext(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)) if(iter->_index < self->size(self))
{ {
@ -203,7 +203,7 @@ iterator_t list_iter(struct _list* self)
assert(self != NULL); assert(self != NULL);
iterator_t iter = &self->_iter; iterator_t iter = &self->_iter;
iter->_parent = self; iter->_container = self;
iter->_index = 0; iter->_index = 0;
return iter; return iter;
} }

View File

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

View File

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

View File

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