CS 239 - Data Storage and Data Structures, continued




Lab review
RectangularArrayV1.java   TestV1.java
RectangularArrayV2.java   TestV2.java
RectangularArrayV3.java   TestV3.java

Common errors

Review

As we begin to program larger applications, the decision about choosing the right "tool for the job" becomes more important.

Programs may manipulate large quantities of data.

Choosing a data structure that fits the needs of the problem at hand can make programming easier and make processing more efficient.

Data Structure - A mechanism for organizing related pieces of information.


Categorizing Structures in Memory

homogeneous structures - the contents of the structure will be the same (arrays, ArrayList<type>)
heterogeneous structures - the contents of the structure may differ (records, objects)

Data structures in the abstract

We can discuss a queue. (Think line at the grocery store).

What do we know about queues?

Does this conceptual view of a queue differ based on its implementation?

Again thinking of a queue...what are some operations that we might perform on a queue?

Do these conceptual operations depend on the underlying implementation?

Some conceptual structures and their "behaviors" and terms

Array
Behaviors:
Terms:
ArrayList
List
Behaviors:
Terms:
Queue
Behaviors:

Terms:

Stack
Behaviors:

Terms:

Tree

Hash Table
Behaviors:
Terms:
Graph

Data Base (internal vs external storage)

Implementation of data structures - Arrays and Linked Lists

Queue.java (array) Queue.java (list)

Stack.java(array) Stack.java(list) Tester.java(list)


Tracing the Quack, in class exercise.  Based on a lab by Dr. Bernstein.
Handout

What would a "generic" application look like.
Node.java Quack.java QuackDriver.java