College assignment algorithm and data structure