Data Structures Essentials
Roman Lysecky | Frank Vahid
zyBooks 2017

Table of Contents

1. Searching and Sorting Alg. (Java)
1.1 Searching and algorithms (Java)
1.2 Binary search (Java)
1.3 O notation
1.4 Algorithm analysis
1.5 Sorting: Introduction
1.6 Selection sort (Java)
1.7 Insertion sort (Java)
1.8 Quicksort (Java)
1.9 Merge sort (Java)

2. Lists, Stacks, and Queues
2.1 List abstract data type (ADT)
2.2 Singly-linked lists
2.3 Singly-linked lists: Insert
2.4 Singly-linked lists: Remove
2.5 Doubly-linked lists
2.6 Doubly-linked lists: Insert
2.7 Doubly-linked lists: Remove
2.8 Linked list traversal
2.9 Linked list search
2.10 Stack abstract data type (ADT)
2.11 Stacks using linked lists
2.12 Queue abstract data type (ADT)
2.13 Queues using linked lists

3. Hash Tables
3.1 Hash tables
3.2 Chaining
3.3 Linear probing
3.4 Common hash functions
3.5 Direct hashing

4. Trees
4.1 Binary trees
4.2 Binary search trees
4.3 BST search algorithm
4.4 BST insert algorithm
4.5 BST remove algorithm
4.6 BST inorder traversal
4.7 BST height and insertion order
4.8 BST parent node pointers
4.9 Heaps
4.10 Treaps

5. Balanced Trees
5.1 AVL: A balanced tree
5.2 AVL rotations
5.3 AVL insertions
5.4 Red-black tree: A balanced tree
5.5 Red-black tree: Rotations
5.6 Red-black tree: Insertion
5.7 Red-black tree: Removal

6. Graphs
6.1 Graphs: Introduction
6.2 Graph representations: Adjacency lists
6.3 Graph representations: Adjacency matrices
6.4 Graphs: Breadth-first search
6.5 Graphs: Depth-first search
6.6 Directed graphs
6.7 Weighted graphs
6.8 Algorithm: Dijkstra’s shortest path
6.9 Algorithm: Bellman-Ford’s shortest path

7. B-trees
7.1 B-trees
7.2 2-3-4 tree search algorithm
7.3 2-3-4 tree insert algorithm
7.4 2-3-4 tree rotations and fusion
7.5 2-3-4 tree removal

8. Searching and Sorting Alg. (C++)
8.1 Searching and algorithms (C++)
8.2 Binary search (C++)
8.3 O notation
8.4 Algorithm analysis
8.5 Sorting: Introduction
8.6 Selection sort (C++)
8.7 Insertion sort (C++)
8.8 Quicksort (C++)
8.9 Merge sort (C++)

9. Searching and Sorting Alg. (C)
9.1 Searching and algorithms (C)
9.2 Binary search (C)
9.3 O notation
9.4 Algorithm analysis
9.5 Sorting: Introduction
9.6 Selection sort (C)
9.7 Insertion sort (C)
9.8 Quicksort (C)
9.9 Merge sort (C)