



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Material Type: Assignment; Professor: Carver; Class: Programming w/Data Structures; Subject: Computer Science; University: Southern Illinois University Carbondale; Term: Fall 2009;
Typology: Assignments
1 / 7
This page cannot be seen from the preview
Don't miss anything!




public int countNodes(Node
(B) Non-tail recursive version:
public int countNodes(Node
(C) Iterative version:
public int countNodes(Node
public static int minimum(int[] data) { return minimumHelper(data, 0, data.length - 1); }
public static int minimumHelper(int[] data, int first, int last) { if (first == last) //Base case, single element arrray: return data[first]; else { //Recursive case, array with more than one element: //(return minimum in each half) int middle = (first + last) / 2; return Math.min(minimum(data, first, middle),minimum(data, middle + 1, last)); } }
(a) (b) (c) f(4): return f(2) + f(1); f(8): f(8): return f(4) + f(2); return f(4) + f(2); f(16): f(16): f(16): return f(8) + f(4); return f(8) + f(4); return f(8) + f(4);
(d) (e) (f) f(2): f(1): return 1; return 1; f(4): f(4): f(4): return f(2) + f(1); return 1 + f(1); return 1 + f(1); f(8): f(8): f(8): return f(4) + f(2); return f(4) + f(2); return f(4) + f(2); f(16): f(16): f(16): return f(8) + f(4); return f(8) + f(4); return f(8) + f(4);
(g) (h) (i) f(4): f(2): return 1 + 1; return 1; f(8): f(8): f(8): return f(4) + f(2); return 2 + f(2); return 2 + f(2); f(16): f(16): f(16): return f(8) + f(4); return f(8) + f(4); return f(8) + f(4);
public void printStack(LinkedStack
Recursive version:x
public LinkedStack
For a circularly linked implementation, the previous reference in the rst node will serve as the tail reference, so we can implement the operations as just described.
myQueue.enqueue("Jane"); Jane myQueue.enqueue("Jess"); Jane Jess myQueue.enqueue("Jill"); Jane Jess Jill myQueue.enqueue(myQueue.dequeue()); Jess Jill Jane myQueue.enqueue(myQueue.getFront()); Jess Jill Jane Jess myQueue.enqueue("Jim"); Jess Jill Jane Jess Jim String name = myQueue.dequeue(); Jill Jane Jess Jim myQueue.enqueue(myQueue.getFront()); Jill Jane Jess Jim Jill
myDeque.addToFront("Jim"); Jim myDeque.addToFront("Jess"); Jess Jim myDeque.addToBack("Jill"); Jess Jim Jill myDeque.addToBack("Jane"); Jess Jim Jill Jane String name = myDeque.removeFront(); Jim Jill Jane myDeque.addToBack(name); Jim Jill Jane Jess myDeque.addToBack(myDeque.getFront()); Jim Jill Jane Jess Jim myDeque.addToFront(myDeque.removeBack()); Jim Jim Jill Jane Jess myDeque.addToFront(myDeque.getBack()); Jess Jim Jim Jill Jane Jess
myPriorityQueue.add("Jim"); Jim myPriorityQueue.add("Jess"); Jess Jim myPriorityQueue.add("Jill"); Jess Jill Jim myPriorityQueue.add("Jane"); Jane Jess Jill Jim String name = myPriorityQueue.remove(); Jess Jill Jim myPriorityQueue.add(name); Jane Jess Jill Jim myPriorityQueue.add(myPriorityQueue.peek()); Jane Jane Jess Jill Jim myPriorityQueue.add("Jim"); Jane Jane Jess Jill Jim Jim myPriorityQueue.remove(); Jane Jess Jill Jim Jim
public void splice(ArrayQueue
public void splice(LinkedQueue
(a) Preorder traversal: 6 4 2 1 3 5 8 7 9 10 11 (b) Postorder traversal: 1 3 2 5 4 9 7 11 10 8 6 (c) Inorder traversal: 1 2 3 4 5 6 7 9 8 10 11 (d) Level order traversal: 6 4 8 2 5 7 10 1 3 9 11