[CLRS] Exercises 2.3-5, 6.1-4, 6.1-5, 6.1-6, 6.3-2, 7.1-2, 7.2-3, Problems 2-1, 2-4
[CLRS] Problem 6-2