Created for CS315 (data structures)