code for PA2, data structure
code for PA3, data structure