aboutsummaryrefslogtreecommitdiff
path: root/dlist.c
diff options
context:
space:
mode:
authorThomas Schmucker <ts@its1.de>2021-12-29 10:48:03 +0100
committerThomas Schmucker <ts@its1.de>2021-12-29 10:48:03 +0100
commit6ced2a50056acbf7caec404a1edfa3b07fa1ac5d (patch)
treeef9d4e6bcf9797b74e13ddbf943f424ac1d49664 /dlist.c
parent87e013bc707860a6f299a2ee3866965a4fae12be (diff)
downloaddata-structures-6ced2a50056acbf7caec404a1edfa3b07fa1ac5d.tar.gz
data-structures-6ced2a50056acbf7caec404a1edfa3b07fa1ac5d.tar.bz2
data-structures-6ced2a50056acbf7caec404a1edfa3b07fa1ac5d.zip
feat: remove NULL-checks
Diffstat (limited to 'dlist.c')
-rw-r--r--dlist.c36
1 files changed, 18 insertions, 18 deletions
diff --git a/dlist.c b/dlist.c
index bb0ead9..55e42d7 100644
--- a/dlist.c
+++ b/dlist.c
@@ -47,7 +47,7 @@ create_element(T data)
47 struct dlist_element *element; 47 struct dlist_element *element;
48 48
49 element = malloc(sizeof *element); 49 element = malloc(sizeof *element);
50 if ( element != NULL ) { 50 if ( element ) {
51 element->data = data; 51 element->data = data;
52 } 52 }
53 53
@@ -62,7 +62,7 @@ dlist_push_front(struct dlist *dlist, T data)
62 struct dlist_element *element; 62 struct dlist_element *element;
63 63
64 element = create_element(data); 64 element = create_element(data);
65 if ( element != NULL ) { 65 if ( element ) {
66 element->prev = NULL; /* Vorgänger ist in jedem Fall NULL */ 66 element->prev = NULL; /* Vorgänger ist in jedem Fall NULL */
67 67
68 if ( dlist_empty(dlist) ) { 68 if ( dlist_empty(dlist) ) {
@@ -90,7 +90,7 @@ dlist_push_back(struct dlist *dlist, T data)
90 struct dlist_element *element; 90 struct dlist_element *element;
91 91
92 element = create_element(data); 92 element = create_element(data);
93 if ( element != NULL ) { 93 if ( element ) {
94 element->next = NULL; /* Nachfolger ist in jedem Fall NULL */ 94 element->next = NULL; /* Nachfolger ist in jedem Fall NULL */
95 95
96 if ( dlist_empty(dlist) ) { 96 if ( dlist_empty(dlist) ) {
@@ -115,7 +115,7 @@ dlist_push_back(struct dlist *dlist, T data)
115bool 115bool
116dlist_pop_front(struct dlist *dlist, T *data) 116dlist_pop_front(struct dlist *dlist, T *data)
117{ 117{
118 if ( dlist->head != NULL ) { 118 if ( dlist->head ) {
119 struct dlist_element *element = dlist->head; 119 struct dlist_element *element = dlist->head;
120 120
121 dlist->head = element->next; 121 dlist->head = element->next;
@@ -125,7 +125,7 @@ dlist_pop_front(struct dlist *dlist, T *data)
125 else 125 else
126 element->next->prev = NULL; 126 element->next->prev = NULL;
127 127
128 if ( data != NULL ) { 128 if ( data ) {
129 *data = element->data; 129 *data = element->data;
130 } 130 }
131 free(element); 131 free(element);
@@ -141,7 +141,7 @@ dlist_pop_front(struct dlist *dlist, T *data)
141bool 141bool
142dlist_pop_back(struct dlist *dlist, T *data) 142dlist_pop_back(struct dlist *dlist, T *data)
143{ 143{
144 if ( dlist->head != NULL ) { 144 if ( dlist->head ) {
145 struct dlist_element *element = dlist->tail; 145 struct dlist_element *element = dlist->tail;
146 146
147 dlist->tail = element->prev; 147 dlist->tail = element->prev;
@@ -151,7 +151,7 @@ dlist_pop_back(struct dlist *dlist, T *data)
151 else 151 else
152 element->prev->next = NULL; 152 element->prev->next = NULL;
153 153
154 if ( data != NULL ) { 154 if ( data ) {
155 *data = element->data; 155 *data = element->data;
156 } 156 }
157 free(element); 157 free(element);
@@ -170,7 +170,7 @@ dlist_insert_next(struct dlist *dlist, struct dlist_element *element, T data)
170 struct dlist_element *new_element; 170 struct dlist_element *new_element;
171 171
172 new_element = create_element(data); 172 new_element = create_element(data);
173 if ( new_element != NULL ) { 173 if ( new_element ) {
174 if ( dlist->head == NULL ) { 174 if ( dlist->head == NULL ) {
175 dlist->head = new_element; 175 dlist->head = new_element;
176 dlist->head->prev = NULL; 176 dlist->head->prev = NULL;
@@ -203,7 +203,7 @@ dlist_insert_prev(struct dlist *dlist, struct dlist_element *element, T data)
203 struct dlist_element *new_element; 203 struct dlist_element *new_element;
204 204
205 new_element = create_element(data); 205 new_element = create_element(data);
206 if ( new_element != NULL ) { 206 if ( new_element ) {
207 if ( dlist->head == NULL ) { 207 if ( dlist->head == NULL ) {
208 dlist->head = new_element; 208 dlist->head = new_element;
209 dlist->head->prev = NULL; 209 dlist->head->prev = NULL;
@@ -322,11 +322,11 @@ dlist_merge(struct dlist *list1, struct dlist *list2)
322 *e1 = list1->head, 322 *e1 = list1->head,
323 *e2 = list2->head; 323 *e2 = list2->head;
324 324
325 while ( e1 != NULL && e2 != NULL ) // Solange in e1 UND e2 Elemente sind... 325 while ( e1 && e2 ) // Solange in e1 UND e2 Elemente sind...
326 { 326 {
327 if ( e1->data < e2->data ) { 327 if ( e1->data < e2->data ) {
328 e1->prev = cur; 328 e1->prev = cur;
329 if ( cur != NULL ) 329 if ( cur )
330 cur->next = e1; 330 cur->next = e1;
331 else 331 else
332 head = e1; 332 head = e1;
@@ -335,7 +335,7 @@ dlist_merge(struct dlist *list1, struct dlist *list2)
335 } 335 }
336 else { 336 else {
337 e2->prev = cur; 337 e2->prev = cur;
338 if ( cur != NULL ) 338 if ( cur )
339 cur->next = e2; 339 cur->next = e2;
340 else 340 else
341 head = e2; 341 head = e2;
@@ -344,25 +344,25 @@ dlist_merge(struct dlist *list1, struct dlist *list2)
344 } 344 }
345 } 345 }
346 346
347 if ( e1 != NULL ) // in e1 sind noch Elemente vorhanden! 347 if ( e1 ) // in e1 sind noch Elemente vorhanden!
348 { 348 {
349 assert(e2 == NULL); 349 assert(e2 == NULL);
350 350
351 e1->prev = cur; 351 e1->prev = cur;
352 if ( cur != NULL ) 352 if ( cur )
353 cur->next = e1; 353 cur->next = e1;
354 else 354 else
355 head = e1; 355 head = e1;
356 356
357 // list1->tail zeigt bereits auf das letzte Element in list1 357 // list1->tail zeigt bereits auf das letzte Element in list1
358 } 358 }
359 else /* if ( e2 != NULL ) */ 359 else /* if ( e2 ) */
360 { 360 {
361 assert(e1 == NULL); 361 assert(e1 == NULL);
362 assert(e2 != NULL); 362 assert(e2);
363 363
364 e2->prev = cur; 364 e2->prev = cur;
365 if ( cur != NULL ) 365 if ( cur )
366 cur->next = e2; 366 cur->next = e2;
367 else 367 else
368 head = e2; 368 head = e2;
@@ -392,7 +392,7 @@ dlist_sort(struct dlist *list)
392 struct dlist_element *slow = list->head, 392 struct dlist_element *slow = list->head,
393 *fast = list->head->next; 393 *fast = list->head->next;
394 394
395 while ( fast != NULL && fast->next != NULL ) 395 while ( fast && fast->next )
396 slow = slow->next, fast = fast->next->next; 396 slow = slow->next, fast = fast->next->next;
397 397
398 struct dlist list1 = { .head = list->head, .tail = slow }, 398 struct dlist list1 = { .head = list->head, .tail = slow },