User Tools

Site Tools


haas:fall2014:data:projects:dlq0

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
haas:fall2014:data:projects:dlq0 [2014/11/08 13:15] – [stack library] wedgehaas:fall2014:data:projects:dlq0 [2014/11/19 14:43] (current) – [Errata] wedge
Line 11: Line 11:
 This section will document any updates applied to the project since original release: This section will document any updates applied to the project since original release:
  
-  * __revision #__<description> (DATESTRING)+  * __revision 1__I noticed some typos and omissions that while not causing any problems, could cause confusion and compiler warnings. (20141116) 
 +    * **unit-enqueue.c** had a bunch of references to "Dequeueing" in its printfs() where it actually meant to say "Enqueueing" (FIXED). 
 +    * the prototype for **rmqueue()** was missing from the **inc/queue.h** header. This was causing implicit function declaration warnings during compile. (FIXED). 
 +  * __revision 2__: unit-mkqueue tweaks and verify-queue.sh enhancements (20141119) 
 +    * While I was debugging some code I noticed that the **unit-mkqueue.c** logic was not flexible enough in handling implementations where front was pointing to the end of the list. I have added logic to enable proper checking of back/front, regardless of underlying list orientation (FIXED). 
 +    * verify-queue.sh enhanced to show absolute totals, even if improper implementations cause the unit test not to perform the full run.
  
 =====Objective===== =====Objective=====
-In this project, resume our conceptual journey and explore another data structure: stacks.+In this project, resume our conceptual journey and explore another data structure: queues.
  
 =====Background===== =====Background=====
-A **stack** is considered one of the most important data structures, along with **queues** (next week's project) and trees. And it is largely because of how often we find them playing out in nature or our day-to-day lives.+A **queue** is considered one of the most important data structures, along with **stack** (last week's project) and trees. And it is largely because of how often we find them playing out in nature or our day-to-day lives.
  
-The word "stack" is [[https://www.google.com/search?&q=define%3Astack&ie=utf-8&oe=utf-8|defined]] as: +The word "queue" is [[https://www.google.com/search?&q=define%3Aqueue&ie=utf-8&oe=utf-8|defined]] as:
- +
-  * (generically): a pile of objects, typically one that is neatly arranged +
-  * (computing): a set of storage locations that store data in such a way that the most recently stored item is the first to be retrieved +
- +
-Additionally, when viewing it as a verb (an action), we also find some positive computing application (bolded) in a less reputable cardplaying usage: +
-  * shuffle or **arrange** (a deck of cards) dishonestly **so as to gain** an unfair **advantage** +
- +
-Or, to distill it out: +
- +
-  * arrange so as to gain advantage +
- +
-Combining with our previous definitions, we have: +
- +
-  * a set of storage locations that are arranged in such a way so as to give us an advantage- the most recently stored item (the last to be placed onto the stack) is the first to be retrieved.+
  
 +  * (generically): a line or sequence of items awaiting their turn to be attended to or to proceed
 +  * (computing): a list of data items, commands, etc., stored so as to be retrievable in a definite order, usually the order of insertion
 ====Lists and Nodes==== ====Lists and Nodes====
 So, how does all this list and node stuff play into our queue implementation? So, how does all this list and node stuff play into our queue implementation?
Line 273: Line 266:
  
 =====Expected Results===== =====Expected Results=====
-To assist you in verifying a correct implementation, a fully working implementation of the node, listand stack libraries should resemble the following (when running the respective verify script): +To assist you in verifying a correct implementation, a fully working implementation of the list and queue libraries should resemble the following (when running the respective verify script):
- +
-====node library==== +
-Here is what you should get for node: +
- +
-<cli> +
-lab46:~/src/data/dlq0$ bin/verify-node.sh  +
-==================================================== +
-=    Verifying Doubly-Linked Node Functionality    = +
-==================================================== +
-  [mknode] Total:   5, Matches:   5, Mismatches:   0 +
-  [cpnode] Total:   6, Matches:   6, Mismatches:   0 +
-  [rmnode] Total:   2, Matches:   2, Mismatches:   0 +
-==================================================== +
- [RESULTS] Total:  13, Matches:  13, Mismatches:   0 +
-==================================================== +
-lab46:~/src/data/dlq0$  +
-</cli>+
  
-As no coding changes were needed in the node library, these results should be identical to that of a fully functioning node implementation from the **dll0** project. 
  
 ====list library==== ====list library====
haas/fall2014/data/projects/dlq0.1415452545.txt.gz · Last modified: 2014/11/08 13:15 by wedge