CS 2401, Fall 2009 Typical mistakes for Test 2 Problem 1/2: * the assignment was NOT to guess why the code is incorrect by looking at it, but to TRACE its execution; for that, you need an example * the "corrected" code is sometimes still wrong, you should have traced it to make sure that it is correct Problem 3: * in a linked list implementation of the stack, the top element is always first, not last * we ask about a linked list implementation, NOT about an array implementation * we push an element 1, NOT a node; push is an abstract ADT operation, it should be used the same way whether we have a linked list or an array implementation * to trace a code, you need to have some code to trace Problem 4-5: * wrong transformation into postfix * wrong algorithm for computing the postfix expression * with pop(), you are also need to peek(); if you only pop, you lose the values * when you need two values, you need to first peek and pop, then again peek and pop if you peek twice in a row, you get the two copies of the same top value from the stack * after you perform an operation, you need to push the result back into the stack Problem 6: * explaining the general role of instance variables instead of the role of this specific instance variable * false claim that without, say, count or last, we will not be able to find the number of elements in a linked list or the last element of the linked list; in reality, we can do that -- but we will need a time-consuming traverse (while loop) Problem 7: * forgetting to indicate which element is first and which is last; in the array implementation of a queue, this is necessary * deleting the wrong element; in the queue, it is first in, first out, so if 3 was placed, then the deleted element is 3 * moving all the elements when one of them is deleted; there is no need to move the elements in a queue Problem 8: * not inserting the front element 2 in the second command * confusion between insertFirst and insertLast