add trivial linked list example
parent
727938dbcf
commit
f6ef53c59e
@ -0,0 +1,44 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include "assert.h"
|
||||||
|
|
||||||
|
struct list_node {
|
||||||
|
int data;
|
||||||
|
struct list_node *next;
|
||||||
|
};
|
||||||
|
typedef struct list_node list_node_t;
|
||||||
|
|
||||||
|
int list_length(list_node_t * list) {
|
||||||
|
list_node_t *cur;
|
||||||
|
int count = 0;
|
||||||
|
|
||||||
|
cur = list;
|
||||||
|
while (cur != NULL) {
|
||||||
|
count++;
|
||||||
|
cur = cur->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
void list_print(list_node_t * list) {
|
||||||
|
list_node_t *cur;
|
||||||
|
|
||||||
|
cur = list;
|
||||||
|
while (cur != NULL) {
|
||||||
|
printf("%d ", cur->data);
|
||||||
|
cur = cur->next;
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
list_node_t *emptylist = NULL;
|
||||||
|
assert(list_length(emptylist) == 0);
|
||||||
|
list_print(emptylist);
|
||||||
|
printf("list_length = %d\n", list_length(emptylist));
|
||||||
|
|
||||||
|
list_node_t foo = { 1, NULL };
|
||||||
|
assert(list_length(&foo) == 1);
|
||||||
|
list_print(&foo);
|
||||||
|
printf("list_length = %d\n", list_length(&foo));
|
||||||
|
}
|
Loading…
Reference in New Issue