Contents

37 Recursion
 37.1 How calling yourself works
 37.2 Recursive thinking
  37.2.1 Tree functions
  37.2.2 Connected / Flood Fill
  37.2.3 Maze walk
 37.3 Errors
38 First class functions
 38.1 Rules and examples
  38.1.1 Declaring function pointers
  38.1.2 Using function pointers
 38.2 Uses
  38.2.1 As a regular variable
  38.2.2 Arrays of pointers
  38.2.3 User-defined keys
  38.2.4 Passing functions into functions
 38.3 Function pointers as callbacks
 38.4 Just cramming in a function
 38.5 Sort plus function input
 38.6 Built-in array function-using functions
 38.7 Older delegate syntax
39 Inheritance
 39.1 Pre-inheritance example
 39.2 Basic Inheritance
 39.3 Intro to Polymorphism
 39.4 Dynamic casting
 39.5 Inheritance and functions
 39.6 dynamic dispatch
40 More Inheritance
 40.1 A story about dynamic dispatch
 40.2 Privacy
  40.2.1 abstract base class
 40.3 Inheritance chains
 40.4 Interfaces
 40.5 Built-in interfaces
 40.6 Misc examples
  40.6.1 Component class
  40.6.2 Scripts and inheritance
  40.6.3 Image subtree example
 40.7 General inheritance advice
41 Templates
 41.1 Template functions
  41.1.1 Implicit types
 41.2 Template classes
  41.2.1 Tuple examples
  41.2.2 More oddball examples
 41.3 Templates and container classes
 41.4 Unity template functions
42 Linked Lists
 42.1 Simple linked list
  42.1.1 Linked List loops
  42.1.2 Insert/Remove
  42.1.3 Removing
 42.2 Misc
 42.3 Special cases
 42.4 Doubly-linked lists
 42.5 An any-type linked-list, using templates
 42.6 Built in Linked List
 42.7 Array implementation of linked lists
43 Big-O notation
 43.1 Loop counting logic
 43.2 Integer array loops
  43.2.1 Fun with bad loops
 43.3 Formal math
 43.4 More tricks and exceptions
 43.5 Other data structures
 43.6 Overview
 43.7 Numbers