Data Structures and Algorithm Analysis
by Mark Allen Weiss · Mark Allen Weiss
Weiss's Java edition, organized around abstract data types and the mathematical analysis of running time, covering trees, hashing, heaps, sorting, disjoint sets and graph algorithms plus advanced structures such as red-black trees, treaps and pairing heaps.
This link may earn us a small commission at no extra cost to you. Affiliate disclosure
More resources on Data Structures
JavaScript Algorithms and Data Structures
Master JavaScript algorithms and data structures with this free course! Build a strong foundation for web development.
Algorithms, Part I
This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms. All the features of this course are available for free. People who are interested in digging deeper into the content may wish to obtain the textbook Algorithms, Fourth Edition (upon which the course is based) or visit the website algs4.cs.princeton.edu for a wealth of additional material. This course does not offer a certificate upon completion.
LeetCode
Online judge with thousands of algorithm and data-structure problems sorted by difficulty, topic and company, plus timed contests, discussion threads and study plans. Regular practice builds fluency with common interview problem patterns and writing correct, efficient code under time pressure.
USFCA Data Structures
Interactive animations from David Galles at the University of San Francisco that step through stacks, hash tables, AVL and red-black trees, heaps, sorting and graph algorithms, letting you watch each operation restructure the data.
LeetCode
A practice archive of several thousand programming problems filterable by data structure, with a judge that runs your solution against hidden tests. Working the array, hash-table, tree and graph tags builds implementation speed under time pressure.
freeCodeCamp Data Structures Full Course
Eight-hour freeCodeCamp course by William Fiset covering dynamic arrays, linked lists, stacks, queues, priority queues, union-find, binary search trees, hash tables, Fenwick trees and AVL trees, each explained with animations then implemented in Java.