- You, This course and Us
- Why are Data Structures And Algorithms important?
- Performance and Complexity
- The Big-O Notation
- What is the complexity of these pieces of code?
- The Linked List - The Most Basic Of All Data Structures
- Linked List Problems
- Linked Lists vs Arrays
- Meet The Stack - Simple But Powerful
- Building A Stack Using Java
- Match Parenthesis To Check A Well Formed Expression
- Find The Minimum Element In A Stack In Constant Time
- Meet The Queue - A Familiar Sight In Everyday Life
- The Circular Queue - Tricky But Fast
- Build A Queue With Two Stacks
- Sorting Trade-Offs
- Selection Sort
- Bubble Sort
- Insertion Sort
- Shell Sort
- Merge Sort
- Quick Sort
- Binary Search - search quickly through a sorted list
- Meet The Binary Tree - A Hierarchical Data Structure
- Breadth First Traversal
- Depth First - Pre-OrderTraversal
- Depth First - In-Order and Post-Order Traversal
- The Binary Search Tree - an introduction
- Insertion and Lookup in a Binary Search Tree
- Minimum Value, Maximum Depth And Mirror
- Count Trees, Print Range and Is BST
- The Heap Is Just The Best Way to Implement a Priority Queue
- Meet The Binary Heap - It's A Tree At Heart
- The Binary Heap - Logically A Tree Really An Array
- The Binary Heap - Making It Real With Code
- Heapify!
- Insert And Remove From A Heap
- Heap Sort Phase I - Heapify
- Heap Sort Phase II - The Actual Sort
- Maximum Element In A Minimum Heap and K Largest Elements In A Stream
- Introducing The Graph
- Types Of Graphs
- The Directed And Undirected Graph
- Representing A Graph In Code
- Graph Using An Adjacency Matrix
- Graph Using An Adjacency List And Adjacency Set
- Comparison Of Graph Representations
- Graph Traversal - Depth First And Breadth First
- Topological Sort In A Graph
- Implementation Of Topological Sort
- Introduction To Shortest Path In An Unweighted Graph - The Distance Table
- The Shortest Path Algorithm Visualized
- Implementation Of The Shortest Path In An Unweighted Graph
- Introduction To The Weighted Graph
- Shortest Path In A Weighted Graph - A Greedy Algorithm
- Dijkstra's Algorithm Visualized
- Implementation Of Dijkstra's Algorithm
- Introduction To The Bellman Ford Algorithm
- The Bellman Ford Algorithm Visualized
- Dealing With Negative Cycles In The Bellman Ford Algorithm
- Implementation Of The Bellman Ford Algorithm
- Prim's Algorithm For a Minimal Spanning Tree
- Use Cases And Implementation Of Prim's Algorithm
- Kruskal's Algorithm For a Minimal Spanning Tree
- Implementation Of Kruskal's Algorithm
- Design A Course Schedule Considering Pre-reqs For Courses
- Find The Shortest Path In A Weighted Graphs - Fewer Edges Better