THIS ENTIRE MESSAGE is located on unix.ic in /afs/cats.ucsc.edu/courses/cmps101-avg/edgeList-adt-msg (the class locker) so you can copy parts of it if you want to. The pa02 assignment said, in part --------------------------------------------------------------------------- You need to use the standard names given in this section so your ADT can interface with other students' clients and vice versa. The function names in the intlist ADT must be il_first, il_rest, il_cons, and il_nil (a constant). The type of the ADT is IntList. These names must be spelled and capitalized as shown. --------------------------------------------------------------------------- For some students it was not clear that this meant ONLY those functions should be defined in the IntList ADT. If you want to define auxiliary functions, put them in IntListLib.c and IntListLib.h or whatever name you choose. DO NOT include any other files in intList.h because that is the same as adding stuff to the ADT. Your program will not work with someone else's IntList ADT (obviously) if you are assuming there are extra functions in it. On unix.ic, see /afs/cats.ucsc.edu/class/cmps101-avg.w07/cross.pa02both to see how compatible your IntList ADT was with others in the class. If students' only problem was having extra functions, we can arrange for you to resubmit this part and we'll re-run the cross-table. THIS DOES NOT AFFECT YOUR GRADE ON pa02 !! Make sure you fix this up for pa03 if you want to be able to run with someone else's EdgeList ADT and have them run with yours. Here are the "official" names for edgeList.h and edgeList.c: ----------------------------------------------------------------------- typedef struct EdgeInfoStruct { int to; double weight; } EdgeInfo; typedef struct EdgeListStruct * EdgeList; EdgeInfo el_first(EdgeList L); EdgeList el_rest(EdgeList L); EdgeList el_cons(Edge newElement, EdgeList oldList); extern const EdgeList el_nil; ----------------------------------------------------------------------- Note that it is perfectly OK for a function to return a struct. You do not malloc anything for this. Inside edgeList.c you need to DEFINE el_nil with this statement: const EdgeList el_nil = NULL; Remember, you can make your own (private) edgeListLib.{c,h} to have additional functions. For example you can define "double el_first_wgt(EdgeList L);" in edgeListLib.{c,h} and nobody else will necessarily use that function. If your program is already working in C but you are using different names, please be sure to submit it before messing around !! Having compatible names is best, but it is not the most important thing. --Allen