New Due Date: Monday, May 24, 2:30 pm, over the web (see turn-in details below).
The goal of this homework is to give you experience writing, compiling, and debugging C programs using pointers, structures, and explicit memory allocation and deallocation.
You should solve this homework individually, not in your project teams.
The same collaboration rules from previous assignments apply: You should construct your solution to this homework alone, but feel free to consult with your friends about C in general.
Note that there are likely to be many solutions to this homework task available in textbooks and on-line. Do yourself a favor and don't look at these solutions. For one, looking at someone else's solution violates the course's collaboration rules, since you're getting course credit for something that's not your own work. For another, I'm sure you want to learn C programming yourself, and this homework is designed to help you do that. Don't cheat yourself by cheating.
You will implement a doubly-linked list data structure with a list header structure. We have provided you with a lot of supporting infrastructure, which you should download into some directory of your choice:
You have to write the file dlist.c that implements the operations and types declared in dlist.h.
Before compiling your program, you should run make depend to accumulate the indirect dependencies for your program. (Look at what happens to your Makefile when you run this.)
Your implementation should eventually pass all the unit tests in main.c.
Here is the output I get when I run the unit test on my sample solution.
You should submit your dlist.c file over the web via E-submit, not via email. Let us know if you have any problems.