datastructures by leyland and sorenson