China map coloring problem data structure course design