#include #include #include "doubly.h" void print_cons(struct node *pons){ printf("(list"); while(pons != NULL){ printf(" %d",pons->first); pons = pons->rest; } printf(")\n"); } int main() { struct node *The_cons; The_cons = cons(1, cons(2, cons(3, cons(4, NULL)))); print_cons(The_cons); printf("Adding 5 after The_cons...\n"); add_after(5, The_cons); print_cons(The_cons); printf("Removing 2...\n"); The_cons = remove_first(The_cons, 2); print_cons(The_cons); printf("1...\n"); The_cons = remove_first(The_cons, 1); print_cons(The_cons); printf("4...\n"); The_cons = remove_first(The_cons, 4); print_cons(The_cons); printf("5...\n"); The_cons = remove_first(The_cons, 5); print_cons(The_cons); printf("7...\n"); The_cons = remove_first(The_cons, 7); print_cons(The_cons); printf("3...\n"); The_cons = remove_first(The_cons, 3); print_cons(The_cons); printf("7...\n"); The_cons = remove_first(The_cons, 7); print_cons(The_cons); printf("Finished.\n"); return(0); }