Skip to content

Commit 409c02e

Browse files
authored
Merge pull request #4 from Pulsar7/feature/add-insert-element-at-index-function
Feature/add insert element at index function * add insert_element_at_index-function to 'dynamic_array' * add improved 'dynamic_array' function-comments/documentation * add 'deprecation'-warning to get_len-function
2 parents d481eea + 8afed1a commit 409c02e

4 files changed

Lines changed: 336 additions & 96 deletions

File tree

docs/README.md

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
- [Get element of Dynamic-array by index](#get-element-of-dynamic-array-by-index)
1212
- [Append two Dynamic-Arrays inplace](#append-two-dynamic-arrays-inplace)
1313
- [Swap position of elements in Dynamic-Array](#swap-position-of-elements-in-dynamic-array)
14-
- [Replace an Element by index](#replace-an-element-by-index)
14+
- [Replace an element by index](#replace-an-element-by-index)
15+
- [Insert an element at an index](#insert-an-element-at-an-index)
1516
- [Sort-Algorithms](#sort-algorithms)
1617
- [Bubble-Sort](#bubble-sort)
1718
- [Merge-Sort](#merge-sort)
@@ -94,7 +95,7 @@ for (int value = 0; value < 50; value++) {
9495
//
9596
// Get amount of elments in dynamic-array
9697
size_t array_len;
97-
if (get_len(&dynamic_array, &array_len) == true) {
98+
if (get_len(&dynamic_array, &array_len) == NO_ERROR) {
9899
printf("length of dynamic-array=%d\n", array_len);
99100
} else {
100101
printf("Couldn't get length of dynamic-array\n");
@@ -187,7 +188,7 @@ size_t static_char_array_len = strlen(static_char_array);
187188
if (append_element_to_dyn_array(&dynamic_array_b, (void*)static_char_array, sizeof(char)*((size_t)static_char_array_len)) == NO_ERROR) {
188189
//
189190
// Append string-element from dynamic-array-B to dynamic-array-A
190-
if (append_dyn_arrays_inplace(&dynamic_array_a, &dynamic_array_b)) {
191+
if (append_dyn_arrays_inplace(&dynamic_array_a, &dynamic_array_b) == NO_ERROR) {
191192
printf("%s\n", (char*)get_element_by_index(&dynamic_array_a, 0));
192193
}
193194
}
@@ -232,7 +233,7 @@ if (clear_dyn_array(&dynamic_array_a) != NO_ERROR) {
232233
return 0;
233234
```
234235

235-
### Replace an Element by index
236+
### Replace an element by index
236237

237238
```C
238239
//
@@ -259,6 +260,33 @@ if (clear_dyn_array(&dyn_a) != NO_ERROR) {
259260
return 0;
260261
```
261262

263+
### Insert an element at an index
264+
265+
```C
266+
//
267+
// Initialize dynamic-array
268+
DynArray dyn_a;
269+
if (init_dyn_array(&dyn_a) != NO_ERROR) {
270+
return 1;
271+
}
272+
//
273+
// Append static-integer-array to dynamic-array
274+
int int_array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
275+
if (append_static_array_elements_to_dyn_array(&dyn_a, (void*)int_array, sizeof(int), (size_t)9) == NO_ERROR) {
276+
//
277+
// Insert additional element at index 0
278+
int new_element = 1337;
279+
insert_element_at_index(&dyn_a, (size_t)0, (void*)&new_element, sizeof(int));
280+
}
281+
//
282+
// Clear dynamic-array
283+
if (clear_dyn_array(&dyn_a) != NO_ERROR) {
284+
return 1;
285+
}
286+
287+
return 0;
288+
```
289+
262290

263291
### Sort-Algorithms
264292

includes/dynamic_array.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
#define DYNAMIC_ARRAY_LIB_DYNAMIC_ARRAY_H
33

44
#include <stddef.h>
5-
#include <stdbool.h>
65

76
/*
87
Define enums, structs
@@ -37,13 +36,14 @@ Error_Code init_dyn_array(DynArray* dynamic_array);
3736
Error_Code append_element_to_dyn_array(DynArray* dynamic_array, const void* data, const size_t data_size);
3837
void* get_last(const DynArray* dynamic_array);
3938
void* get_first(const DynArray* dynamic_array);
40-
bool get_len(const DynArray* dynamic_array, size_t* len);
39+
Error_Code get_len(const DynArray* dynamic_array, size_t* len);
4140
Error_Code append_static_array_elements_to_dyn_array(DynArray* dynamic_array, const void* static_array, const size_t static_array_elem_size, const size_t static_array_len);
4241
DynArrayNode* get_element_ptr_by_index(const DynArray* dynamic_array, const size_t index);
4342
void* get_element_by_index(const DynArray* dynamic_array, const size_t index);
44-
bool append_dyn_arrays_inplace(DynArray* a, const DynArray* b);
43+
Error_Code append_dyn_arrays_inplace(DynArray* a, const DynArray* b);
4544
Error_Code swap_elements_by_indices(DynArray* dynamic_array, const size_t index_a, const size_t index_b);
4645
Error_Code replace_element_by_index(DynArray* dynamic_array, const size_t index, const void* data, const size_t data_size);
46+
Error_Code insert_element_at_index(DynArray* dynamic_array, const size_t index, const void* data, const size_t data_size);
4747
Error_Code clear_dyn_array(DynArray* dynamic_array);
4848

4949
#endif // DYNAMIC_ARRAY_LIB_DYNAMIC_ARRAY_H

0 commit comments

Comments
 (0)