aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Schmucker <ts@its1.de>2020-08-15 14:06:30 +0200
committerThomas Schmucker <ts@its1.de>2020-08-15 14:06:30 +0200
commit861f4a49a425dcf052fc36cef963a99d82a9c974 (patch)
treebb4ee6412645a385967f11b7dbd49d4c10250432
parent5f57d99e789947005da5da2de809c24dbc9ca56f (diff)
downloaddata-structures-861f4a49a425dcf052fc36cef963a99d82a9c974.tar.gz
data-structures-861f4a49a425dcf052fc36cef963a99d82a9c974.tar.bz2
data-structures-861f4a49a425dcf052fc36cef963a99d82a9c974.zip
neue Funktion: deque_set_at() implementiert.
-rw-r--r--deque.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/deque.c b/deque.c
index da3c221..a4fbc1b 100644
--- a/deque.c
+++ b/deque.c
@@ -169,6 +169,22 @@ deque_get_at(struct deque *d, size_t idx, T *data)
169 return true; 169 return true;
170} 170}
171 171
172bool
173deque_set_at(struct deque *d, size_t idx, T data)
174{
175 if ( idx >= d->size ) {
176 return false;
177 }
178
179 const size_t pos = d->offset + idx;
180 const size_t chunk_off = pos % CHUNK_CAPACITY;
181 const size_t chunk_num = (pos / CHUNK_CAPACITY + d->map_begin) % d->map_capacity;
182
183 d->map[chunk_num][chunk_off] = data;
184
185 return true;
186}
187
172void 188void
173deque_push_back(struct deque *d, T data) 189deque_push_back(struct deque *d, T data)
174{ 190{