Example #1
0
/*
  Main function to test the list operations.  It creates two lists
  from some test data (one list is in the same order as the test data,
  the other in reverse).
  
  (Do not change this.)
*/
int main (int argc, char ** argv)
{
  static int const data[] = { 3, 14, 15, 92 };
  int ii;
  List * fwd;
  List * rev;
  
  fwd = create ();
  rev = create ();
  for (ii = 0; ii < sizeof(data)/sizeof(*data); ++ii) {
    append (fwd, data[ii]);
    prepend (rev, data[ii]);
  }
  
  printf ("forward:");
  print (fwd);
  printf ("reverse:");
  print (rev);
  
  ins_after (fwd, fwd->head, -11);
  printf ("ins_after head:    ");
  print (fwd);
  
  ins_after (fwd, fwd->tail, -22);
  printf ("ins_after tail:    ");
  print (fwd);
  
  ins_after (fwd, fwd->head->next, -33);
  printf ("ins_after 2nd item:");
  print (fwd);
  
  while (NULL != fwd->head) {
    rem_head (fwd);
    printf ("removed head:");
    print (fwd);
  }
  
  destroy (fwd);
  destroy (rev);
  
  return 0;
}
Example #2
0
File: ll19.c Project: jleffler/soq
int main(void)
{
    value *node1;

    prt_forwards("Empty");

    node1 = new_node(23);
    ins_tail(node1);
    prt_backwards("Tail 23");

    node1 = new_node(29);
    ins_head(node1);
    prt_forwards("Head 29");

    value *node2 = new_node(31);
    ins_head(node2);
    prt_forwards("Head 31");

    node1 = new_node(37);
    ins_after(node2, node1);
    prt_backwards("37 after 31");

    node1 = new_node(41);
    ins_after(node2, node1);
    prt_forwards("41 after 31");

    node1 = new_node(43);
    ins_before(node2, node1);
    prt_forwards("43 before 31");

    node1 = new_node(47);
    ins_before(node2, node1);
    prt_forwards("47 before 31");

    del_list();
    prt_backwards("Empty");

    return 0;
}