diff options
| author | Thomas Schmucker <ts@its1.de> | 2020-08-15 14:06:30 +0200 |
|---|---|---|
| committer | Thomas Schmucker <ts@its1.de> | 2020-08-15 14:06:30 +0200 |
| commit | 861f4a49a425dcf052fc36cef963a99d82a9c974 (patch) | |
| tree | bb4ee6412645a385967f11b7dbd49d4c10250432 /deque.c | |
| parent | 5f57d99e789947005da5da2de809c24dbc9ca56f (diff) | |
| download | data-structures-861f4a49a425dcf052fc36cef963a99d82a9c974.tar.gz data-structures-861f4a49a425dcf052fc36cef963a99d82a9c974.tar.bz2 data-structures-861f4a49a425dcf052fc36cef963a99d82a9c974.zip | |
neue Funktion: deque_set_at() implementiert.
Diffstat (limited to 'deque.c')
| -rw-r--r-- | deque.c | 16 |
1 files changed, 16 insertions, 0 deletions
| @@ -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 | ||
| 172 | bool | ||
| 173 | deque_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 | |||
| 172 | void | 188 | void |
| 173 | deque_push_back(struct deque *d, T data) | 189 | deque_push_back(struct deque *d, T data) |
| 174 | { | 190 | { |
