User Tools

Site Tools


info:teaching:pprog15

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Last revisionBoth sides next revision
info:teaching:pprog15 [2015/02/19 07:35] – eclipse tricks moritzinfo:teaching:pprog15 [2015/04/30 14:55] – in class example moritz
Line 2: Line 2:
   * [[info:java|Java tips]]   * [[info:java|Java tips]]
   * [[info:eclipse_cheat_sheet|Eclipse tricks]]   * [[info:eclipse_cheat_sheet|Eclipse tricks]]
 +
 +===== Class 10 =====
 +<code>
 +#include <stdio.h>
 +#include <stdlib.h>
 +
 +struct node {
 +    int value;
 +    struct node *next;
 +};
 +
 +void insert(struct node *list, struct node *element) {
 +    element->next = list->next;
 +    list->next = element;
 +}
 +
 +void print(struct node *e) {
 +    printf("e->value=%d\n", e->value);
 +}
 +
 +void apply(void (*f)(struct node *), struct node *list) {
 +    while (list) {
 +        f(list);
 +        list = list->next;
 +    }
 +}
 +
 +
 +int main()
 +{
 +    int i;
 +    struct node list;
 +    list.value = 99999;
 +    list.next = NULL;
 +
 +    for (i = 1; i <= 10; i++) {
 +        struct node *element = malloc(sizeof(struct node));
 +        if (element == NULL) {
 +            return 1;
 +        }
 +        element->value = i << 2;
 +        insert(&list, element);
 +    }
 +    struct node *current = &list;
 +/*
 +    while (current) {
 +        printf("%d ", current->value);
 +        current = current->next;
 +    }
 +    printf("\n"); */
 +
 +    apply(&print, &list);
 +
 +    current = list.next;
 +    while (current) {
 +        printf("%d ", current->value);
 +        struct node *n = current;
 +        current = current->next;
 +        free(n);
 +    }
 +
 +    printf("Hello world!\n");
 +    return 0;
 +}
 +</code>
 +
info/teaching/pprog15.txt · Last modified: 2015/05/21 15:22 by moritz

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki