Even though I did a Uni course on java, resources are resources
These links explain concepts more than just slabs of code, they are pretty useful. So useful I mailed them to a lecturer awhile ago.
---------------------------------------------------------------------
(2,4) Tree Java Applet
http://www.cs.mcgill.ca/~cs251/ClosestPair/BalancedTreeApplet/BalancedTreeApplet.html
Binary Tree Applet
http://www.cs.jhu.edu/~goodrich/dsa/trees/btree.html
AVL Tree Tutorial (Excellent in the way it describes rotations)
http://cairns.cs.jcu.edu.au/teaching/Subjects/cp2001/1998/LectureNotes/BalancedTrees/node2.html
Heap Sort (good resource, kind of technical in parts though)
http://www.iti.fh-flensburg.de/lang/algorithmen/sortieren/heap/heapen.htm
Prim Jarnik Algorithm (has an excellent java applet illustrating this algorithm in practice)
http://students.ceid.upatras.gr/~papagel/project/prim.htm
---------------------------------------------------------------------
Website:
McGill University School of Computer Science Class Notes for 308-251B
Data Structures and Algorithms
Stacks, Queues and Lists (found it alright, nothing special)
http://www.cs.mcgill.ca/~cs251/OldCourses/1997/topic6/
Tries, and Suffix Tries (good resource if you understand its content)
http://www.cs.mcgill.ca/~cs251/OldCourses/1997/topic7/
Trees, and lots of info on trees (has a good java applet on tree traversals)
http://www.cs.mcgill.ca/~cs251/OldCourses/1997/topic8/
Binary Search Trees (has an applet as well)
http://www.cs.mcgill.ca/~cs251/OldCourses/1997/topic9/
More Trees and Quicksort (java applet on QuickSort)
http://www.cs.mcgill.ca/~cs251/OldCourses/1997/topic10/
Hashing (has applet also on hash chaining)
http://www.cs.mcgill.ca/~cs251/OldCourses/1997/topic12/
Open Address Hashing (or Probing as called in other words)
http://www.cs.mcgill.ca/~cs251/OldCourses/1997/topic13/
Hashing (its applications)
http://www.cs.mcgill.ca/~cs251/OldCourses/1997/topic14/
Priority Queue Info (good resource)
http://www.cs.mcgill.ca/~cs251/OldCourses/1997/topic15/
Heaps
http://www.cs.mcgill.ca/~cs251/OldCourses/1997/topic16/
Balanced Trees (has a 2-4 Tree Applet)
http://www.cs.mcgill.ca/~cs251/OldCourses/1997/topic19/
Augmented Data Structures (Good writings on the way trees can be utilised)
http://www.cs.mcgill.ca/~cs251/OldCourses/1997/topic20/
Different Coding Algorithms (has a section on Huffman Coding)
http://www.cs.mcgill.ca/~cs251/OldCourses/1997/topic21/
Huffman Trees (excellent theory information regarding the Huffman algorithm)
http://www.cs.mcgill.ca/~cs251/OldCourses/1997/topic22/
Graphs (lots of different graphs and there properties)
http://www.cs.mcgill.ca/~cs251/OldCourses/1997/topic25/
Depth-First Graph Searching (java Applet on DFS) (has info on complexity, different tours, etc.)
http://www.cs.mcgill.ca/~cs251/OldCourses/1997/topic26/
Breadth-First Search (java applet doesn't work in Opera, might work in IE, I don't know)
http://www.cs.mcgill.ca/~cs251/OldCourses/1997/topic27/
Minimum Spanning Trees (has a MST applet)
http://www.cs.mcgill.ca/~cs251/OldCourses/1997/topic28/
Shortest Path Algorithms (Dijkstra, indepth info, proofs, applet)
http://www.cs.mcgill.ca/~cs251/OldCourses/1997/topic29/
---------------------------------------------------------------------