Дерево было бы хорошим подходом, но у меня сложилось впечатление, что вы думаете, что будет универсальная структура данных, которую вы можете использовать, и я не представляю ее себе. Я согласен с решением Марка, но рекомендую словарь вместо списка. Таким образом, вы можете быстро найти категорию и получить ее подкатегории.