## General Introductions

- Aakash Varshney. Introduction to Data Structures. the startup, 2018.
- Robert Horvick. Data Structures Succinctly Part 1. syncfusion, 2014.
- Covers algorithms and data structures overview, linked lists, array lists, stacks, queues, binary search tree, set, and sorting algorithms.

- Robert Horvick. Data Structures Succinctly Part 2. syncfusion, 2014.
- Covers skip lists, hash tables, heap and priority queues, and AVL trees.

## The Types of Data Structures

### Arrays

### Linked Lists

- Each item in a linked list has a reference to the item following it.
- Doubly Linked
- If a linked list is doubly linked, it has a reference to both the previous and next records.

- Circularly Linked
**JavaScript:****Python:**- Pedro Pregueiro. Linked Lists in Python: An Introduction. realpython, 2020.

### Stacks

- Uses
`push`

to add to top of stack,`pull`

or`pop`

to remove from top of stack. Not possible to interact with any other item besides top item. Follows Last In First Out (LIFO).- Sometimes supports
`peek`

which allows looking at top of stack but without removing it from the stack.

- Sometimes supports
- Wahid Tanner, takeupcode, 2017.
**Python:**- Does not include stack as a data structure but
`lists`

(bad idea) and`collections.deque`

can be used as stacks.- In Python you will use
`append()`

instead of`push()`

.

- In Python you will use
- Jim Anderson. How to Implement a Python Stack. realpython, 2019.*
- Stack in Python. GeeksforGeeks, 2020.

- Does not include stack as a data structure but
**JavaScript:****C/C++**- Anand Jaisingh. Basics of Stacks. hackerearth, 2020.

### Queues

- Similar to Stacks, but instead of LIFO it uses FIFO (First-In First-Out).
**JavaScript**

### Graphs

“Graphs are used to represent, find, analyze, and optimize connections between elements (houses, airports, locations, users, articles, etc.).”

Estefania Cassingena Navone

- Basic Components: Nodes, Edges
- |V| = Number of vertices (nodes) in a graph.
- |E| = Number of edges (connections) in a graph.
- Graphs are classified by edge characteristics.
- Directional
- Directed Graphs
- Undirected Graphs

- Weighting
- Weighted Graphs
- Unweighted Graphs

- Multigraphs
- Density
- Dense Graphs
- Sparse Graphs

- Directional
- Traversal
- Depth First Traversal
- Breadth First Traversal

- Cycles
- Estefania Cassingena Navone. Data Structures 101: Graphs — A Visual Introduction for Beginners. freecodecamp, 2019.*

### Sets

- Estefania Cassingena Navone. Python Sets: A Detailed Visual Introduction. freecodecamp, 2020.

### Trees

- Wahid Tanner, Trees Can, takeupcode, 2017.
- Wahid Tanner, Trees Use, takeupcode, 2017.
- Traversal
- Binary Search Tree
- AVL Tree
- Spanning Tree
- Splay Tree
- Heap
- Binomial
- Fibonacci

### Dictionaries

- Estefania Cassingena Navone. Python Dictionaries 101: A Detailed Visual Introduction. freecodecamp, 2019.

- Interface
- Implementation
- Hash Tables
- Dictionaries
- Vectors
- Set
- Record

## Big O Notation

- Richard Carr. Big O Notation Basics. BlackWasp, 2013.