diff options
Diffstat (limited to 'collections')
| -rw-r--r-- | collections/double_ended_queue.c | 10 | ||||
| -rw-r--r-- | collections/double_ended_queue.h | 3 | 
2 files changed, 12 insertions, 1 deletions
| diff --git a/collections/double_ended_queue.c b/collections/double_ended_queue.c index e737d28..232fb44 100644 --- a/collections/double_ended_queue.c +++ b/collections/double_ended_queue.c @@ -101,6 +101,16 @@ deq *root;  	root->base = tmp;  } +void deq_set(root, index, item) +deq *root; +int index; +void *item; +{ +	if (!root || !DEQ_IN_BOUNDS(root, index)) +		return; +	root->base[(root->beg + index) % root->limit] = item; +} +  void* deq_index(root, index)  deq *root;  int index; diff --git a/collections/double_ended_queue.h b/collections/double_ended_queue.h index 877503d..332b16f 100644 --- a/collections/double_ended_queue.h +++ b/collections/double_ended_queue.h @@ -22,8 +22,9 @@ void deq_clear();  /*data*/  void deq_push_back(deq*, void*);  void* deq_pop_front(deq*); -void* deq_index(deq*, int);  void* deq_pop_back(deq*); +void deq_set(deq*, int, void*); +void* deq_index(deq*, int);  void deq_swap(deq*, int, int); | 
