data structure programming assignment