**Introduction**

This is an index of articles on my site indexed by chapters in the book * Cracking the Coding Interview – (6th edition)* by Gayle Laakmann Mcdowell; The book’s intended purpose is to prepare prospective candidates for coding interviews (particularly with some of the big-name companies like Google). So here I’ve indexed the topic on my site by chapters in the book. However, sometimes the relationships would be tangential, so reading the book is the best.

**Part VI – Big-O**

**Chapter 1 – Arrays and String**

**Chapter 2 – Linked Lists**

Describe Linked Lists && Implementing Linked Lists

Recursive Problems

**Chapter 3 – Stacks & Queues**

Stacks & Queues (Data Structures)

**Stacks & Queues Interview Questions**

*1/ Use a single array to implement three stacks*

*2/ Stack Min – Design a stack that has an extra function returning a min element (where push, pop, and min all operate with O(1) time complexity).*

*3/ Stack of Plates*

*4/ Queue via Stacks*

*5/ Sort Stack*

*6/ Animal Shelter*

**Chapter 4 – Trees & Graphs**

Graphs are an important data structure in computer science, and trees and a subset of graphs.

Graphs & Graph Search Algorithms

**Chapter 5 – Bit Manipulation**

The fifth chapter of the book covers some elements of the type of thing we pick up in the early stages of a Computer Science degree program, but then possibly don’t think about much after that.

**Chapter 6 – Math and Logic Puzzles**

[…]

**Chapter 7 – Object-Oriented Design**

Solving O.O. Themed Interview Questions

Factory Pattern && Singleton Pattern

**Chapter 8 – Recursion and Dynamic Programming**

**Recursion** means the repeated application of a recursive procedure, typically where a function calls itself directly or indirectly, and it’s used to solve problems like the Towers of Hanoi where a recursive solution makes sense. **Dynamic Programming** is a method for solving complex problems by breaking them down into a collection of simpler subproblems, solving each of those subproblems just once, and **storing the solutions**. Dynamic Programming is basically a combination of **recursion and memoization**.

Fibonacci, the Golden Ratio & Memoization

**Chapter 9 – System Design and Scalability**

…

**Chapter 10 – Sorting and Searching**

…

**Chapter 11 – Testing**

An Outline of Testing. Covering Unit Tests, Automated Testing etc.

**Chapter 12 – C and C++**

General Language Backstory: Programming Language Origin Stories

This chapter in the book looks at things like inheritance and polymorphism in C++

**Chapter 13 – Java**

General Language Backstory: Programming Language Origin Stories

**Chapter 14 – Databases**

Fundamentals of Databases

Looking at SQL, how we use DataBases in an OS context.

SQL Basics

**Databases in iOS**

**Databases in iOS**

#### CoreData

#### MySQL and Wrappers for This

#### Realm

**References**

**A:** [Github repo with Swift Answer to Book Questions]