cis256 data structs in java