Introduction
— print (last updated: Aug 25, 2008) print

Select font size:
A data structure is encapsulation of data and relevant operations. It is referred to as an Abstract Data Type (ADT), signifying that the actual implementation is left open, subject to satisfying the intended meaning of the operations. For the most part the exact data representation is not presented; rather, all access to the data is through the operations.

The Java class is a perfect model for an ADT. In addition to the encapsulation with accessibility via operations only, the presentation of operations are in the modern object-oriented fashion in which the data takes precedence over the operation.

According to this definition, every Java class is a data structure. However, classically, we have particular interest in the classes which are often termed to be part of the Java collections. In Java terms these are contained in the java.util package. In particular, they are aggregate data structures typically representing unbounded structures whose size is parameterized.

The focus of interest to this class is:
  1. Building data structures.
  2. Comparing and contrasting the efficiency of different implementations
  3. Using data structures to solve difficult algorithmic problems.
There are many factors involved in these pursuits, but we can often pin it down to three things:

Simplicity

This really should be the first consideration. We say time is money, but the "time" may be the amount of time you spend on something, not the time it takes to execute.

Speed

This is the second consideration: try to improve the overall speed. There are several considerations:

Space efficiency

Advanced data structures usually require extra storage to hold information about the structure which can be used for efficient processing. Usually this features is considered last, but in data-intensive data structures, say, for a database, it is crucial.


© Robert M. Kline