C Codes
Beginners
C on Unix
Code Snippets
Data Structures
File Operations
Games Graphics
Gnu-Linux
Hardware
Mathematics
Miscellaneous
Small Programs
Sorting
C > Sorting Searching sample source codes
No sort, but reversing a [linked list]
No sort, but reversing a [linked list] #include
#include
#define MAX 10 /* max of 10 elements */ struct lnode { int number; struct lnode *next; }; /* add a lnode at the beginning of the list */ void llist_add_begin(struct lnode **n, int val); /* reverse the whole list */ void llist_reverse(struct lnode **n); /* display the whole linked list */ void llist_display(struct lnode *n); int main(void) { struct lnode *new = NULL; int i = 0; /* insert some numbers */ for(i = 0; i <= MAX; i++) llist_add_begin(&new, i); printf("linked list before reversal:"); llist_display(new); llist_reverse(&new); printf("linked list after reversal:"); llist_display(new); return 0; } /* add a lnode at the beginning of the list */ void llist_add_begin(struct lnode **n, int val) { struct lnode *temp = NULL; /* add new node */ temp = malloc(sizeof(struct lnode)); temp->number = val; temp->next = *n; *n = temp; } /* reverse the whole list */ void llist_reverse(struct lnode **n) { struct lnode *a = NULL; struct lnode *b = NULL; struct lnode *c = NULL; a = *n, b = NULL; while(a != NULL) { c = b, b = a, a = a->next; b->next = c; } *n = b; } /* display the whole linked list */ void llist_display(struct lnode *n) { while(n != NULL) printf(" %d", n->number), n = n->next; printf("\n"); }
Privacy Policy
|
Link to Us
|
Links