CS 61B, Spring 1999

MT2 Version B

Professor M. Clancy

Background

Some of the problems on this exam involve intevals of integers. (Note the difference between these intervals and

thsoe you worked with in homework assignment 4, which represented intervals on the real number line.)

The interval [a,b] represents all the integers that are greater than or equal to a and less than or equal to b. For

example, [3,5] represents the set of integers {3, 4, 5}, [-5,-4] represents the set {-5,-4}, and the interval [5,3]

represents the empty set.

The Interval class is defined as follows.

public class Interval {

private int myLeft;

private int myRight;

// Constructor.

public Interval (int left, int right) { ...

}

// Return this's left endpoint.

public int left ( ) {

return myLeft;

}

// Return this's right endpoint.

public int rightt ( ) {

return myRight;

}

// Return a hash value forthis.

public int hashCode ( ) { ...

}

// Return exactly whenthis represents the smae interval asintvl.

public boolean equals (Interval intvl) { ...

}

// Returntrue exactly whenthis contains x.

public boolean contains (int x) { ...

}

// Returntrue whenthis overlapsintvl,

// i.e. contains integers in common withintvl.

public boolean overlaps (Interval intvl) {...

CS 61B, MT2 Version B, Spring 1999

CS 61B, Spring 1999 MT2 Version B Professor M. Clancy 1

}

// Return the result of combiningthis withintvl.

// Precondition:overlaps (intvl).

public Interval extendThrough (Interval intvl) { ...

}

}

Problem 1 (4 poinst, 10 minutes)

The hash function below, a variation on the PCC function from "Real-World Hash Functions," is intended to be

applid to English words as was the function in homework assignment 7. There are at least two sets of table sizes

for which the function will work badly. Name them, and briefly explain your answers.

Suppose for the purposes of this problem that the Interval class from homework assignment 4 is defined as

follows:

public int hashCode ( ) {

int h = 0;

for (int k=0; k <s.length(); k++) {

h = 2 * (h + s.charAt (k));

}

return h;

}

Problem 2 (8 pionts, 24 minutes)

Background

This problem involves the implementation of a class IntervalCollection that stores a collection of

nonoverlapping intervals of integers. (See the first page for more information about intervals of integers.) The

class provides three methods: a constructor, an insert method, and an intervalContaining method that, given an

integer, returns a reference to the interval in the collection that contains the integer. The intervalCollection class

can be implemented, using hashing, in such a way as to optimize the intervalContaining operation. That is, if

the interval [-5,-3] were in the collection, then the methods calls

intervalContaining (-5)

intervalContaining (-4)

intervalContaining (-3)

would all return the interval [-5,-3] quickly.

Part a

Describe, using words and a diagram, an implementation of the IntervalCollection class that uses a

java.util.Hashtable object to optimize the intervalContaining operation as described above. Assume for the

purposes of illustration that chaining is used to resolve collisions and that the intervals [30,32] and [-12,-11]

collide; include these intervals in your diagram.

Part b

Write the intervalContaining method for the IntervalCollection class. Given an int argument,

intervalContaining returns a reference to the interval in the collection that contains the argument, or null if no

CS 61B, MT2 Version B, Spring 1999

Background 2

interval in the collection contains the argument. Again assume that a java.util.Hashtable object is used, that is

get method returns a null reference when asked about something not in the table, and that the hash table is

declared in the Interval Collection class as a private variable named myIntervals.

You will receive no credit for this part if the implementation you describe in part a does not sufficiently optimize

the intervalContaining operation.

public Interval intervalContaining (int x) {

//fill in

...

}

Part c

Complete the following sentence, assuming that chaining is used to resolve hash table collisions:

The worse-case running time of your intervalContaining method is proportional to

__________________________________________________________________________________________

Problem 3 (7 points, 15 minutes)

Consider a Vector representation of the SquareList class from project 2. The deleteAll method below is an

attempt to delete all the squares that contain that point represented by the arguments. (The variable mySquares

is a private reference to a vector of Squares.)

public void deleteAll (int x, int y) {

for (int k=0; k <mySquares.size(); k++) {

if (((Square) mySquares.elementAt (k)).contains (x, y)) {

mySquares.removeElementAt (k);

}

}

}

Part a

The code unfortunately doesn't work. Describe completely the lists of squares that the deleteAll function fails to

process correctly.

Part b

Making as few changes as possible, fix the bug.

Part c

The figures in the table below result from timing an application of the buggy version of deleteAll 1000 times to a

list of N squares, and from doing the same thing using the same list with the corrected version. (The list is not

necessarily one that would result from clicking the mouse in project 2.) Identify which timings go with which

version, describe the list to which deleteAll was applied as completely as possible, and explain your reasoning

for both answers.

CS 61B, MT2 Version B, Spring 1999

Problem 2 (8 pionts, 24 minutes) 3

one of the the other

N versions of version of

deleteAll deleteAll

128 1933 995

256 4784 2646

512 14208 6833

1024 47620 22388

2048 167355 81191

Posted by HKN (Electrical Engineering and Computer Science Honor Society)

University of California at Berkeley

If you have any questions about these online exams

please contact examfile@hkn.eecs.berkeley.edu.

CS 61B, MT2 Version B, Spring 1999

Problem 3 (7 points, 15 minutes) 4

##### Document information

Uploaded by:
shashidhar_p43

Views: 800

Downloads :
0

University:
Bhupendra Narayan Mandal University

Subject:
Data Structures

Upload date:
02/04/2013