All pastes #983404 Raw Edit

Untitled

public text v1 · immutable
·published 2008-04-13 10:31 UTC
rendered paste body
#include <stdio.h>                                                                                                                            
typedef struct _list_t
{
    struct _list_t *next;
    int data;
} list_t;

void reverse(list_t *l)
{
  list_t *tmp = NULL, *prev= NULL;
  list_t *next = l;
  do {
    tmp = next->next;
    next->next = prev;
    prev = next;
    next = tmp;
  } while(tmp);
}

void print_list(list_t *l)
{
    while(l) {
      printf("data %d\n", l->data);
      l = l->next;
    }
}

int main() {
 list_t list[3];
 list[0].data = 0;
 list[0].next = &list[1];
 list[1].data = 1;
 list[1].next = &list[2];
 list[2].data = 2;
 list[2].next = NULL;

 print_list(list);
 reverse(list);
 print_list(&list[2]);
 return 0;
}