adjacent list data structure definition