Corning Community College CSCS2320 Data Structures ~~TOC~~ ======Project: SLL3====== =====Errata===== This section will document any updates applied to the project since original release: * __revision 1__: There was a potential stale Makefile issue for those using the test reference implementation when upgrading between projects; if they did not re-enable the test reference implementation it could lead to weird compiling issues. FIXED. (20160928) =====Objective===== This is a transitional project, making a few modifications to the list struct forcing some changes to a few functions so that we can better explore the next topic (in **sll4**). As such, while this is a standalone project, it should be considered a small one, and one that is given out in combination with another (again: **sll4**), so be mindful of time management. You will need to complete this project prior to upgrading to **sll4**. =====Project Overview===== ====list.h==== For this project, we need to make a couple modifications to the list struct (which you can also check out in **inc/list.h**): ////////////////////////////////////////////////////////////////////// // // list struct definition // struct list { Node *initial; // pointer to start of list Node *closing; // pointer to end of list struct list *there; // pointer to the next list unsigned long int qty; // number of nodes in list }; typedef struct list List; // cuz we deserve nice things Specifically, we have an after pointer, so that we can point to an entirely separate list, along with a newly added **qty** variable, which will keep track of the number of nodes in the list. To implement **qty**, all list functions that perform manipulations to the list will need to see some updating (**insert()**, **append()**, **obtain()**, and **mklist()**) To implement the list's new **there** pointer, you'll want to enhance **mklist()** and **cplist()** accordingly. =====Expected Results===== To assist you in verifying a correct implementation, a fully working implementation of the node library, list library (with new modifications), and group library should resemble the following: ====list library==== ===sll3 list functions=== Here is what you should get for the specific functions relevant to sll3: lab46:~/src/data/sll3$ make check ====================================================== = Verifying Singly-Linked List Functionality = ====================================================== [mklist] Total: 21, Matches: 21, Mismatches: 0 [cplist] Total: 14, Matches: 14, Mismatches: 0 [insert] Total: 21, Matches: 21, Mismatches: 0 [append] Total: 21, Matches: 21, Mismatches: 0 [obtain] Total: 44, Matches: 44, Mismatches: 0 ====================================================== [RESULTS] Total: 121, Matches: 121, Mismatches: 0 ====================================================== lab46:~/src/data/sll3$ ===entire list=== Here is what you should get for all the functions completed so far in the list library (sll0+sll1+sll2+sll3): lab46:~/src/data/sll3$ bin/verify-list.sh ====================================================== = Verifying Singly-Linked List Functionality = ====================================================== [mklist] Total: 21, Matches: 21, Mismatches: 0 [insert] Total: 21, Matches: 21, Mismatches: 0 [displayf] Total: 10, Matches: 10, Mismatches: 0 [getpos] Total: 8, Matches: 8, Mismatches: 0 [setpos] Total: 9, Matches: 9, Mismatches: 0 [append] Total: 21, Matches: 21, Mismatches: 0 [searchlist] Total: 11, Matches: 11, Mismatches: 0 [cplist] Total: 14, Matches: 14, Mismatches: 0 [displayb] Total: 10, Matches: 10, Mismatches: 0 [compare] Total: 15, Matches: 15, Mismatches: 0 [obtain] Total: 44, Matches: 44, Mismatches: 0 [clearlist] Total: 3, Matches: 3, Mismatches: 0 [rmlist] Total: 3, Matches: 3, Mismatches: 0 [swapnode] Total: 9, Matches: 9, Mismatches: 0 [sortlist] Total: 27, Matches: 27, Mismatches: 0 ====================================================== [RESULTS] Total: 226, Matches: 226, Mismatches: 0 ====================================================== lab46:~/src/data/sll3$ =====Submission===== {{page>haas:fall2016:common:submitblurb#DATA&noheader&nofooter}}