[CLRS] Exercises 22.1-1, 22.1-5, 22.1-6, 22.2-1, 22.2-6, 22.2-8, 22.3-1, 22.3-2, 22.4-2, 22.5-7
[CLRS] Problem 22.3