CSE 373 -- Data Structures and Algorithms

Winter 2001

Department of Computer Science and Engineering, University of Washington

Steve Tanimoto (instructor)

Assignment 4

Version 1.0 of February 7.

Search Trees 

Due dates and times: See the section below on "Timing", because some portions of the assignment must be completed prior to the applet deadline. The final applets are due Thursday, February 22, 2001, at 6:00 PM.

Turn in this assignment by filling in the A4 online submission form.


 

Title: Search Trees.

Purposes: (a) continue to develop discussion skills, particularly in talking about the properties of data structures and algorithms, (b) continue teamwork, and (c) develop a more complicated data structure applet.

Instructions:  Do parts A, B, and C.

Part A.  Online communication.

Each student completes an "initial post" during the week of February 5 and at the latest by Monday, February 12 at 6:00 PM. These initial posts are to be done individually and independently -- not as teamwork. The initial posts are to done in INFACT-FORUM by making a REPLY to the question posted by the instructor. Your initial posts will be invisible to everyone else during the initial posting period.

Some time shortly after Monday, February 12 at 6:00 PM, the initial posts will become visible to others within the same groups. Each group should consider the posts of its members and debate the points raised. By the end of the second week, each group is to come up with a consensus answer to the question, plus a "retrospective" account of how the group arrived at its agreed-upon solution. The group solution and retrospective must be posted by Wednesday, February 21 at 6:00 PM. The retrospective should also include a description of what each team member contributed or is contributing to Parts B and C as well as Part A.

Part B.  Applets and documentation.

Each group will produce an applet that implements its assigned technique. The group will investigate the behavioral aspects assigned to it using (1) the book and other resources to be found online, and (2) the applet and data that the group makes up to test and demonstrate the behavior of interest.

The group will also put documentation on the web (on the page with the applet) explaining (a) the technique and the details of how it works, and (b) the special behavior studied.

Part C.  Oral presentation.

Each group should prepare a 5-minute oral presentation. Responsibility for giving the presentation can be assigned to one or two members of the group, but all group members should participate in the planning of the presentation. There should be a rotation in the role of presenter, so that every student gets to give a presentation in the class during the quarter. These presentations are to be given in class or, if sufficient time is not available during class periods, during extra periods to be scheduled.

Topics

There are 4 techniques with 4 approaches to each technique = 16 topics. Each group will be assigned one of these.

Techniques

  • 1. AVL Trees
  • 2. Red-Black Trees
  • 3. B-Trees
  • 4. Splay Trees
  • Possible Assumptions

  • A. Use strings as keys.
  • B. Use numbers (e.g., 12.75) as keys.
  • C. Worst-case behavior is of primary interest.
  • D. Average case behavior is of primary interest.
  • Approaches

  • 1. Use assumptions A and C.
  • 2. Use assumptions A and D.
  • 3. Use assumptions B and C.
  • 4. Use assumptions B and D.
  • Initial posts should respond go the following question: How appropriate are the technique and approach (that your group has been assigned) to the solutions of each of the following two software application problems?
  • Application: Scooter Rental Reservations.

    " The Blue Lake Scooter Rental company has outlets at five locations: Blue Lake, Sunrise Bay, College Green, Main Street, and Silver Mall. It rents out battery powered scooters by the hour, half day or day. The company accepts reservations over the Internet. After handling reservations manually for a year by having reservation agents reading email and then filling out index cards, they have decided to automate. They want to improve their "turnaround time" and so be able to tell a customer immediately if no scooters will be available during the time and at the place they have requested. You've been contacted to develop the data-handling part of their reservations system. For some reason, they don't want to use a standard database system, and they want you to implement a data structure that will normally reside in RAM and process the querying, insertion and deletion of reservations. To what extent can your assigned technique and analysis methods be used for this application? (If you've been assigned the user of numerical keys, think about how the data could be organized in terms of numbers, too., and what might be involved in checking the name field of a record even though the record is stored according to a number. Also, to what extent will it be important to efficiently support insertion, finding, deletion, and printing daily schedules for the 5 outlets in the early morning?"

    Topic Assignments by Group

    • Amber: Technique 1, Approach 1.
    • Beige: Technique 2, Approach 1.
    • Chartreuse: (group now merged with Amber)
    • Dandelion: Technique 3, Approach 1.
    • Emerald: Technique 4, Approach 1.
    • Fuschia: Technique 1, Approach 2.
    • Gold: Technique 2, Approach 2.
    • Hyacinth: Technique 3, Approach 2.
    • Indigo: Technique 4, Approach 2.
    • Jade: Technique 1, Approach 3.
    • Khaki: Technique 2, Approach 3.
    • Lavender: Technique 3, Approach 3.
    • Mauve: Technique 4, Approach 3.
    • Navy: Technique 1, Approach 4.
    • Orange: Technique 2, Approach 4.
    • Purple: Technique 3, Approach 4.
    • Quartz: (group now merged with Purple)
    • Ruby: Technique 4, Approach 4.

    Timing

     Wednesday, February 7: Assignment is posted
      Meet any new group members.
      Begin reading about binary search trees in Sahni, pp.566-599, 601-603.
      Read parts of Chapter 16 as needed for your groups.
      (By February 21, everyone should have read all of Chapter 16.)
    
     Friday, February 9:
      Begin writing your individual answers to the thought question.
      Work out a work-sharing arrangement for developing your group's
      applet, documentation, and analysis.  Begin following the arrangement.
    
     Monday, February 12 at 6:00 PM:
      Deadline for posting your individual answers to the thought question.
    
     Monday evening through Wednesday, February 21:
      In the online forum, debate your answers to the thought question.
      Work on applets, documentation and presentations.
    
     Wednesday, February 21 at 6:00 PM:
      Deadline for posting your group's concensus answer to the
      thought question, with retrospective.
    
     Wednesday, February 21:
      Oral presentations.
    
     Thursday, February 22 at 6:00 PM:
      Deadline for turning in your group's applet(s) and other files 

    Presentation Guidelines:

    (1) prepare a web page with your applet, plus about one page of bullet points to guide your presentation; (2) tell what technique(s) you are using; (3) tell us about the test data you are using to investigate the performance of your technique,  (4) tell us how you are handling deletion; (5) demonstrate your applet but watch the time; (6) explain your findings so far regarding the performance of your technique on your test data and any insights you have gained about hashing.  If your applet has any extra features, explain or demonstrate them.  If your applet is not fully working, then compensate in your talk by going over more of the issues, theory, or math related to your technique.
      The presentations serve many purposes.  They will be a chance for each group to get some feedback on their work so far.  They'll be an opportunity for all of us to gain more insight into the different types of binary search trees.  (Also, they'll count for a small portion of your grades.)