mirror of
https://gitee.com/apaki/unicstl.git
synced 2025-05-17 19:41:36 +08:00
修改iter的parent为_container,避免理解偏差
This commit is contained in:
parent
c70b007386
commit
4aa966bb93
@ -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 ----------
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user