---
title: Data Structures
description: Data structures are specialized formats for organizing, processing, and storing data in a computer. Learners will understand arrays, linked lists, stacks, queues, trees, and graphs, and how to select the optimal structure for efficient data retrieval.
category: programming-tech
subcategory: programming-fundamentals
difficulty: beginner, intermediate, advanced
url: /subject/data-structures
---

# Data Structures

Data structures are specialized formats for organizing, processing, and storing data in a computer. Learners will understand arrays, linked lists, stacks, queues, trees, and graphs, and how to select the optimal structure for efficient data retrieval.

## Available Resources

2 Videos • 3 Books • 5 Courses • 5 Websites

## Websites

### 1. 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.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

**Tags:** data-structures, algorithm-visualization, binary-search-trees, sorting-algorithms, interactive-tools

### 2. 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.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://leetcode.com/problemset/all/

**Tags:** coding-practice, data-structures, algorithms, coding-interviews, problem-sets

### 3. Visualgo

Interactive visualizations of data structures and algorithms built by Steven Halim at the National University of Singapore, animating sorting, trees, graphs, and shortest paths step by step so learners can trace how each algorithm changes state.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://visualgo.net/en

**Tags:** algorithm-visualization, data-structures, sorting, graph-algorithms, interactive

### 4. visualgo.net

Visualgo.net is an interactive visualization platform for learning data structures and algorithms, offering animated, step-by-step demonstrations of core structures (arrays, lists, stacks, queues, trees, graphs) and algorithms with explanations.

**Difficulty:** Intermediate | **Language:** English | **Price:** Free

**Link:** https://visualgo.net

**Tags:** websites, technology-computer-science, algorithms

### 5. 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.

**Difficulty:** Intermediate | **Language:** English | **Price:** Free

**Link:** https://leetcode.com

**Tags:** coding-interviews, algorithm-practice, data-structures, online-judge, problem-patterns

## Videos

### 1. 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.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://www.youtube.com/watch?v=RBSGKlAvoiM

**Tags:** data-structures, java, binary-search-trees, hash-tables, union-find

### 2. Algorithms Course by Abdul Bari

Opening lecture of Abdul Bari's algorithms series, distinguishing an algorithm from a program, listing the properties every algorithm must satisfy, and outlining the time and space criteria used to compare competing solutions to the same problem.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://www.youtube.com/watch?v=0IAPZzGSbME

**Tags:** algorithms, algorithm-analysis, time-complexity, lecture-series, introductory

## Courses

### 1. Introduction to Algorithms (MIT 6.006)

**Author:** Erik Demaine, Jason Ku, Justin Solomon

Modeling computational problems and solving them with core algorithms and data structures: sorting, hashing, binary trees, heaps, graph search, shortest paths and dynamic programming. 32 lecture videos, notes, problem sets and exams with solutions teach asymptotic analysis and algorithm design.

**Difficulty:** Intermediate | **Price:** Free

**Link:** https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2020/

**Tags:** data-structures, asymptotic-analysis, graph-algorithms, dynamic-programming, sorting

### 2. JavaScript Algorithms and Data Structures

Master JavaScript algorithms and data structures with this free course! Build a strong foundation for web development.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/

**Tags:** javascript, algorithms, data-structures, freecodecamp

### 3. Trees and Graphs: Basics

**Author:** Sriram Sankaranarayanan

University of Colorado Boulder course covering binary search trees, balanced trees, graph traversals, union-find, minimum spanning trees, and shortest-path algorithms, with Python programming assignments. Finishing it, you can implement and reason about the cost of these structures.

**Difficulty:** Intermediate | **Language:** English | **Price:** Free

**Link:** https://www.coursera.org/learn/trees-graphs-basics

**Tags:** graph-algorithms, graph-traversal, shortest-paths, minimum-spanning-trees, union-find, binary-search-trees

### 4. Data Structures

A good algorithm usually comes together with a set of good data structures that allow the algorithm to manipulate the data efficiently. In this online course, we consider the common data structures that are used in various computational problems. You will learn how these data structures are implemented in different programming languages and will practice implementing them in our programming assignments. This will help you to understand what is going on inside a particular built-in implementation of a data structure and what to expect from it. You will also learn typical use cases for these data structures.

A few examples of questions that we are going to cover in this class are the following:
1. What is a good strategy of resizing a dynamic array?
2. How priority queues are implemented in C++, Java, and Python?
3. How to implement a hash table so that the amortized running time of all operations is O(1) on average?
4. What are good strategies to keep a binary tree balanced? 

You will also learn how services like Dropbox manage to upload some large files instantly and to save a lot of storage space!

**Difficulty:** Beginner | **Language:** English | **Duration:** 4 weeks of study, 5-10 hours/week | **Price:** Free

**Link:** https://www.coursera.org/learn/data-structures

**Tags:** courses, technology-computer-science, computer-sciences

### 5. 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.

**Difficulty:** Beginner | **Language:** English | **Duration:** 6 weeks of study, 6–10 hours per week. | **Price:** Free

**Link:** https://www.coursera.org/learn/algorithms-part1

**Tags:** courses, technology-computer-science, algorithms

## Books

### 1. Data Structures and Algorithms in Python

**Author:** Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser

Textbook developing stacks, queues, linked lists, trees, priority queues, maps, hash tables, search trees and graphs in Python from a consistent object-oriented viewpoint, with running-time analysis and exercises. Standard choice for a second-year algorithms course.

**Difficulty:** Intermediate | **Language:** English | **Price:** Paid

**Link:** https://www.amazon.com/dp/9354247865?tag=edmonddante07-20

**Tags:** books, technology-computer-science, algorithms

### 2. Data Structures and Algorithm Analysis

**Author:** 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.

**Difficulty:** Intermediate | **Language:** English | **Price:** Paid

**Link:** https://www.amazon.com/dp/0201357542?tag=edmonddante07-20

**Tags:** books, technology-computer-science, programming-fundamentals

### 3. Data Structures and Algorithms Made Easy

**Author:** Narasimha Karumanchi

Problem-driven interview prep book presenting each data structure through worked puzzles with several alternative solutions compared on time and space cost, coded in C and C++. Aimed at exam and interview rehearsal rather than theoretical grounding.

**Difficulty:** Intermediate | **Language:** English | **Price:** Paid

**Link:** https://www.amazon.com/dp/1468108867?tag=edmonddante07-20

**Tags:** books, technology-computer-science, algorithms

---

*This content is part of Dantes.io - Your Treasure Map to Knowledge*

*Curated by humans at Dantes.io. Personal study use welcome; republishing this curation requires permission (team@dantes.io).*

View this page online: https://dantes.io/subject/data-structures