Added list dumper
This commit is contained in:
parent
4975231933
commit
59da024f42
1 changed files with 32 additions and 2 deletions
|
|
@ -39,6 +39,7 @@
|
||||||
#include "doubly_linked_list_with_iterator.h"
|
#include "doubly_linked_list_with_iterator.h"
|
||||||
#include "limits.h"
|
#include "limits.h"
|
||||||
#include "allocator.h"
|
#include "allocator.h"
|
||||||
|
#include "stdio.h"
|
||||||
|
|
||||||
/** The type of list nodes */
|
/** The type of list nodes */
|
||||||
typedef struct IntListNodeData* IntListNode;
|
typedef struct IntListNodeData* IntListNode;
|
||||||
|
|
@ -77,10 +78,39 @@ static IntListNode list_obtain_node(int data) {
|
||||||
|
|
||||||
static void list_release_node(IntListNode node) {
|
static void list_release_node(IntListNode node) {
|
||||||
free_mem(node);
|
free_mem(node);
|
||||||
|
node = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* optional: implement a function for printing the content of the list - may be useful for debugging */
|
/* optional: implement a function for printing the content of the list - may be useful for debugging */
|
||||||
void list_dump(char* prefix, IntList list) {
|
void list_dump(IntList list) {
|
||||||
|
char list_dumper_title[13] = "List dumper:";
|
||||||
|
if(!list_is_valid(list)) {
|
||||||
|
printf("%s Got invalid list\n", list_dumper_title);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (list_is_empty(list)) {
|
||||||
|
printf("%s Got an empty list\n", list_dumper_title);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("%s Got a list with size %d\n", list_dumper_title ,list->size);
|
||||||
|
|
||||||
|
IntListIterator iterator = list_it_obtain(list);
|
||||||
|
if (iterator == 0) {
|
||||||
|
printf("%s An error occured while trying to obtain the list iterator\n", list_dumper_title);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for (int i = 0; i < list->size; i++) {
|
||||||
|
printf("%s Node %d with value %d\n", list_dumper_title, i, list_it_get(iterator));
|
||||||
|
if(!list_it_next(iterator)) { // early break, due to being already at the end of the list
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
list_it_release(iterator);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ===================================================================== */
|
/* ===================================================================== */
|
||||||
|
|
@ -165,7 +195,7 @@ bool list_is_empty(IntList list) {
|
||||||
* @return The number of values the list contains.
|
* @return The number of values the list contains.
|
||||||
*/
|
*/
|
||||||
int list_get_size(IntList list) {
|
int list_get_size(IntList list) {
|
||||||
if(!list_is_empty(list)) {
|
if(!list_is_valid(list)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue