aboutsummaryrefslogtreecommitdiff
path: root/sem3/algo/mm2/linked/main.c
blob: 8637796d2c750d4a7f2e596c2076574bcc44d9fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <stdio.h>
#include "node.h"
#include "llist.h"

void list_print(node_t *root)
{
    int index = 0;
    /* Loop through notes and print them */
    while (root != NULL) {
        /* Print a value */
        printf("%d: %d\n", index++, root->val);

        /* Next value */
        root = root->next;
    }
}

/* Remove node */
int main()
{
    /* Do some stuff */
    llist_t list;
    llist_init(&list);

    llist_append(&list, 11); // 0
    llist_append(&list, 22); // 1
    llist_append(&list, 33); // 2
    llist_append(&list, 44); // 3
    llist_append(&list, 89); // 4
    llist_append(&list, 12); // 5
    llist_append(&list, 2); // 6
    llist_append(&list, 1); // 7
    llist_append(&list, 7); // 8
    llist_append(&list, 232); // 9

    list_print(list.root);
    printf("%d\n", llist_get(&list, 5));
    llist_pop(&list, 9);
    printf("%d\n", llist_get(&list, 7));

    list_print(list.root);

    while (list.len) {
        printf("Popped %d\n", llist_pop(&list, 0));
    }
}