Resources

Links that you may find useful as you learn new data structures and algorithms.

Textbook

There is no required textbook. But, this is data structures textbook in Java that I like:

Note: The earlier editions are much cheaper and also good for students learning about data structures.

Java® Platform, Standard Edition & Java Development Kit Version 11.04 API Specification

Basic Data Structures

Review Data structures that you should already know.

Data Structure Visualizations by David Galles

Data Structure Visualizations by David Galles of University of San Francisco, visualizes inserts and deletes for several popular data structures and algorithms.

There are instructions for how to create your own visualization. If you do create one, let me know. There may be an opportunity for course participation credit for your work.

CS Linux Workstation - Getting Started documents

Java Review

Java Review for the AP CS A Exam

  • This site has several good interactive questions.
  • Please let me know if you find terminology difference, recall
    • length of path of a tree: count the nodes
    • length of path in a graph: count the edges

Sorting Video courtesy of YouTube

Visualization and Comparison of Sorting Algorithms

Use the Internet to draw and diagram things for you

Create a graph using this web app
http://illuminations.nctm.org/Activity.aspx?id=3550
Create a finite state machines (graph)
http://ivanzuzak.info/noam/webapps/fsm2regex/
Generate (draw) a tree
Generate a tree diagram from a text definition of the tree.
This page lets you build trees with recursive text definitions (i.e. build this full tree [A [B [D] [E]] [C [F] [G]]] )
http://ironcreek.net/phpsyntaxtree/?
Java Memory Visualizer
The first Java visualizer site I found and liked.

-- visualize recursive method calls
This page allows you to enter java program code and then visualize the memory used as it runs.
http://cscircles.cemc.uwaterloo.ca/java_visualize/. 

  • Click [Visualize Execution] link
  • Step through code using [Forward] button.
  • You can [edit code] and make your own Java visualizations.