CS 239 - Data Storage and Data Structures


Introduction

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.

arch's notes

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)