Graph Data Structure Definition