Page Tools:

Data Structures in Java: A Laboratory Course

Author(s): Sandra Andersen
Details:
  • ISBN-13: 9780763718169
  • ISBN-10:0763718165
  • Paperback    432 pages      © 2002
Price: International Sales $108.95 US List
Add to Cart Request a Review Copy

Overview

Data Structures in Java: A Laboratory Course defines active learning.  With sixteen labs to choose from, this laboratory manual creates a “learn by doing” experience for its students by engaging them in implementation of data structures and in application of algorithms. Students are challenged to exercise their knowledge in each of the four-part structure laboratory assignments:

  • Prelab: Students use the Prelab assignments to explore and implement the basic operations of a data structure.
  • Bridge: During the Bridge exercises, students test and debug the advanced data types they developed in the prelab and are provided with substantial feedback and support. 
  • In-lab: Students gain programming experience during the in-lab projects as they apply the data structure to a real-world problem.
  • Postlab:   Following their lab class, students analyze and validate the efficiency or utility of the data structure in the Postlab exercise.  

ADT Implementation:

The laboratories are designed to complement a variety of approaches to implementing each ADT. All ADT definitions stress the use of data abstraction and generic data elements. As a result, you can adapt them with minimal effort to suit different implementation strategies.

For each ADT, class definitions that frame an implementation of the ADT are given as part of the corresponding Prelab exercise. This definition framework is also used in the visualization method that accompanies the laboratory. Should you elect to adopt a somewhat different implementation strategy, you need only make minor changes to the data members in the class definitions and corresponding modifications to the visualization routine. You do not need to change anything else in either the supplied software or the laboratory text itself.

ShowKey Features

Most labs use simple examples and graphic illustrations to explain the fundamentals of each data structure.  

The progressive nature of each lab from PreLab assignments through In-Lab exercises helps students learn how the data structure works and how it can be applied in real-world applications.  
An interactive, command-driven test program is provided in most laboratories, along with a visualization routine (show Structure) that allows students to see changes in the content and organization of the data structure.  
Extra features include a performance evaluation laboratory (Laboratory 15), a team software development project (Laboratory 16), and an introduction to graphics and applets (Laboratory 2 and 3). 

Students produce code in the laboratory assignments that they can use again as part of larger, more applications-oriented programming projects.

Back to top

ShowTable of Contents

Laboratory 1 - Logbook ADT
Focus: Implementing an ADT using a Java class
Application: Generating a calendar display
Prelab Exercise      
Bridge Exercise      
In-lab Exercise 1      
In-lab Exercise 2      
In-lab Exercise 3      
Postlab Exercise 1
Postlab Exercise 2

Laboratory 2 - Point List ADT
Focus: Array implementation of a point list
Application: Displaying a dragon curve
Prelab Exercise      
Bridge Exercise      
In-lab Exercise 1      
In-lab Exercise 2      
In-lab Exercise 3      
Postlab Exercise 1      
Postlab Exercise 2      

Laboratory 3 - String ADT
Focus: Java’s built-in String class
Application: Lexical analysi
Prelab Exercise      
Bridge Exercise      
In-lab Exercise 1      
In-lab Exercise 2      
In-lab Exercise 3      
Postlab Exercise 1      
Postlab Exercise 2 

Laboratory 4 - Array Implementation of the List ADT
Focus: Array implementation of a list
Application: Analyzing DNA sequences
Prelab Exercise      
Bridge Exercise      
In-lab Exercise 1      
In-lab Exercise 2      
In-lab Exercise 3      
Postlab Exercise 1      
Postlab Exercise 2      

Laboratory 5 - Stack ADT
Focus: Array and singly linked list implementations of a stack
Application: Evaluating postfix arithmetic expressions
Prelab Exercise      
Bridge Exercise      
In-lab Exercise 1      
In-lab Exercise 2      
In-lab Exercise 3      
Postlab Exercise 1      
Postlab Exercise 2      

Laboratory 6 - Queue ADT
Focus: Array and singly linked list implementations of a queue
Application: Simulating the flow of customers through a line
Prelab Exercise      
Bridge Exercise      
In-lab Exercise 1      
In-lab Exercise 2      
In-lab Exercise 3      
Postlab Exercise 1      
Postlab Exercise 2      

Laboratory 7 - Singly Linked  List Implementation of the List ADT
Focus: Singly linked list implementation of a list
Application: Slide show program
Prelab Exercise      
Bridge Exercise      
In-lab Exercise 1      
In-lab Exercise 2      
In-lab Exercise 3      
Postlab Exercise 1      
Postlab Exercise 2      

Laboratory 8 - Doubly Linked List Implementation of the List ADT
Focus: Circular doubly linked list implementation of a list
Application: Anagram puzzle
Prelab Exercise      
Bridge Exercise      
In-lab Exercise 1      
In-lab Exercise 2      
In-lab Exercise 3      
Postlab Exercise 1      
Postlab Exercise 2      

Laboratory 9 - Ordered List ADT
Focus: Array implementation of an ordered list using inheritance
Application: Assembling messages in a packet switching network
Prelab Exercise      
Bridge Exercise      
In-lab Exercise 1      
In-lab Exercise 2      
In-lab Exercise 3      
Postlab Exercise 1      
Postlab Exercise 2      

Laboratory 10 - Recursion with Linked Lists
Focus: Using recursion to process and restructure linked lists
Application: Replacing recursion with iteration
Prelab Exercise      
Bridge Exercise      
In-lab Exercise 1      
In-lab Exercise 2      
In-lab Exercise 3      
Postlab Exercise 1      
Postlab Exercise 2    

Laboratory 11 - Expression Tree ADT
Focus: Linked implementation of an expression tree
Application: Logic circuits
Prelab Exercise      
Bridge Exercise      
In-lab Exercise 1      
In-lab Exercise 2      
In-lab Exercise 3      
Postlab Exercise 1      
Postlab Exercise 2      

Laboratory 12 - Binary Search Tree ADT
Focus: Linked implementation of a binary search tree
Application: Indexed accounts database
Prelab Exercise      
Bridge Exercise      
In-lab Exercise 1      
In-lab Exercise 2      
In-lab Exercise 3      
Postlab Exercise 1      
Postlab Exercise 2      

Laboratory 13 - Heap ADT
Focus: Array implementation of a heap
Application: Simulating the flow of tasks in an operating system using a priority queue
Prelab Exercise      
Bridge Exercise      
In-lab Exercise 1      
In-lab Exercise 2      
In-lab Exercise 3      
Postlab Exercise 1      
Postlab Exercise 2      

Laboratory 14 - Weighted Graph ADT
Focus: Adjacency matrix implementation of the Weighted Graph ADT
Application: Computation of shortest paths
Prelab Exercise      
Bridge Exercise      
In-lab Exercise 1      
In-lab Exercise 2      
In-lab Exercise 3      
Postlab Exercise 1      
Postlab Exercise 2      

Laboratory 15 - Performance Evaluation
Focus: Determining execution times
Application: Analyzing the execution times of sorting and searching routines
Prelab Exercise      
Bridge Exercise      
In-lab Exercise 1      
In-lab Exercise 2      
In-lab Exercise 3      
Postlab Exercise 1      
Postlab Exercise 2      

Laboratory 16 - Team Software Development Project
Focus: Object-oriented analysis and design techniques
Application: Create a program that generates an HTML noteboard consisting of a set of monthly calendars and associated notes
Week 1: Prelab Exercise 1      
Week 1: Prelab Exercise 2      
Week 1: Bridge Exercise      
Week 1: In-lab Exercise      
Week 2: In-lab Exercise      
Postlab Exercise


Back to top

ShowAbout the Author(s)

Sandra Andersen

Sandra Andersen, assistant professor in the Mathematics and Computer Science Department at Concordia College, received both her PhD and M.S. in Computer Science from North Dakota State University.  Anderson's research interests include software engineering and testing and microcomputer applications in education. She regularly teaches courses in introductory object-oriented programming as well as upper-level courses in data structures and algorithm analysis.

Back to top

ShowAppropriate Courses

This laboratory text is intended for undergraduate or second-semester freshmen taking:

  • CS2 in Java. 
  • Upper-level Java programming course in Data Structures.
Back to top

ShowSamples & Additional Resources

ShowResources

Back to top
Stay Connected
Connect on facebook
Follow us on Twitter
Read our Blog