/* File: main2.c

   Using an ordered linked list ADT
*/

#include <stdio.h>
#include "list2.h"

main() {
   list L1, L2 ;
   node *position ;

   printf("Create list with a, c, d, l & p\n") ;
   L1 = CreateList() ;
   AddItem(L1, "d") ;
   AddItem(L1, "l") ;
   AddItem(L1, "a") ;
   AddItem(L1, "p") ;
   AddItem(L1, "c") ;
   PrintList(L1) ;

   printf("\nRemove \"d\"\n") ;
   position = Search(L1, "d") ;
   Delete(L1, position) ;
   PrintList(L1) ;

   printf("\nCreate second list with a, b, d, f, g, l, m, n, x & y\n") ;
   L2 = CreateList() ;
   AddItem(L2, "a") ;
   AddItem(L2, "l") ;
   AddItem(L2, "n") ;
   AddItem(L2, "y") ;
   AddItem(L2, "d") ;
   AddItem(L2, "b") ;
   AddItem(L2, "f") ;
   AddItem(L2, "g") ;
   AddItem(L2, "x") ;
   AddItem(L2, "m") ;
   PrintList(L2) ;

   printf("\nMerge the two lists\n") ;
   MergeList(L1, L2) ;
   PrintList(L1) ;
   printf("Merged list has %d items.\n", CountList(L1)) ;

   printf("\nTest for membership\n") ;
   if (IsMember2(L1,"g")) {
      printf("   found g\n") ;
   } else {
      printf("   did not find g\n") ;
   }
   if (IsMember2(L1,"w")) {
      printf("   found w\n") ;
   } else {
      printf("   did not find w\n") ;
   }
}
