Due Dates:
- Sections 1 & 3: Thursday, September 19, in class.
- Sections 2 & 4: Monday, September 23, in class.
Referenced exercises are from Data Structures and Algorithm Analysis
in Java by Mark A. Weiss. Page numbers are for the third edition
(3/e) and the second edition (2/e) of the textbook. (For this problem
set, the page numbers for the two editions happen to be the same.)
- Exercise 2.1 (3/e: p. 50, 2/e: p. 50).
- Exercise 2.2 (3/e: p. 50, 2/e: p. 50), parts a-d. Briefly justify your answers.
- Exercise 2.5, (3/e: p. 50, 2/e: p. 50). Briefly justify your answers.
- Exercise 2.28 (3/e: p. 54, 2/e: p. 54), parts a & b.
Additional Instructions:
Try to make your algorithm as fast as possible. First explain
your strategy in a few English sentences. Then, provide
pseudo-code for your algorithm. (Do not include an entire Java
program.) Briefly justify the correctness and running time of
your program.
- Consider the following Java program.
The program compiles without any errors, but throws an exception at
run time. Explain why the error occurs at run time and not at compile
time.
public class Node {
private T data;
public Node(T data) { this.data = data; }
public void setData(T data) {
System.out.println("Node.setData: this.data = " + this.data);
this.data = data;
}
}
public class MyNode extends Node {
public MyNode(Integer data) { super(data); }
public void setData(Integer data) {
System.out.println("MyNode.setData: data = " + data);
super.setData(data);
}
public static void main (String [] args ) {
MyNode mn = new MyNode(5);
Node n = mn;
n.setData("Hello");
}
}