- Coding interviews are tough - but beatable
- Materials
- Introduction to pointers
- Pointer problems and arrays
- Pointer arithmetic
- Practice makes perfect - pointer problems
- Working with strings
- Pointer as arguments to functions
- Practice makes perfect - string problems
- Pointers to pointers - bend your mind
- Pointers to pointers - reassignment and modification
- Get started with linked lists
- Warming up to - they get tricky quickly
- Cruising along - linked lists are fun aren't they?
- Autopilot - linked lists are easy after all
- Do not overlook the doubly linked list
- Bit Manipulation - I
- Bit Manipulation - II
- Useful Bit Manipulation Techniques
- Get And Set The Nth Bit
- Print And Count Bits
- Reverse The Bits In An Integer
- Starting up - palindromes and points within a distance
- Play the Game Of Life and Break A Document Into Chunks
- Run Length Encoding And Adding Numbers Digit By Digit
- Sudoku Board Validation and Incrementing A Number In Another Number System
- Performance and Complexity
- Big O Notation
- Big O Notation More Examples
- Sorting Trade-Offs
- Selection Sort
- Bubble Sort
- Insertion Sort
- Shell Sort
- Merge Sort
- Quick Sort
- Binary Search - search quickly through a sorted list
- What is recursion - why is it so hard?
- Binary search - implemented recursively
- Find all subsets of a set
- Check whether 2 binary trees are the same
- Implement paint fill to color a region on screen
- Build A car Given Tasks And Dependencies
- Generate Anagrams Of A Word
- Help A Rat Find It's Way Through a Maze
- Place 8 Queens On A Board Safely
- 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
- 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
- Has Path Sum, Print Paths, Least Common Ancestor
- 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
- Merge K Sorted Lists Into One Sorted List Using A Heap
- Find The Median In A Stream Of Elements
- 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