Program to maintain a linked list
#include #include #include /* structure containing a data part and link part */ struct node {  int data ;  struct node * link ; } ; void append ( struct node **, int ) ; void addatbeg ( struct node **, int ) ; void addafter ( struct node *, int, int ) ; void display ( struct node * ) ; int count ( struct node * ) ; void delete ( struct node **, int ) ; void main( ) {  struct node *p ;  p = NULL ;  /* empty linked list */  printf ( "\nNo. of elements in the Linked List = %d", count ( p ) ) ;  append ( &p, 14 ) ;  append ( &p, 30 ) ;  append ( &p, 25 ) ;  append ( &p, 42 ) ;  append ( &p, 17 ) ;  display ( p ) ;  addatbeg ( &p, 999 ) ;  addatbeg ( &p, 888 ) ;  addatbeg ( &p, 777 ) ;  display ( p ) ;  addafter ( p, 7, 0 ) ;  addafter ( p, 2, 1 ) ;  addafter ( p, 5, 99 ) ;  display ( p ) ;  printf ( "\nNo. of elements in the Linked List = %d", count ( p ) ) ;  delete ( &p, 99 ) ;  delete ( &p, 1 ) ;  delete ( &p, 10 ) ;  displ...