Я не программист, поэтому простота алгоритма имеет бо'льшее значение, чем, к примеру, его эффективность.
Вот что нужно. Имеется совокупность списков. Каждый список простой, то есть включает только элементы второго уровня. Любой список может быть сам элементом другого списка, а элемент данного списка может содержать в себе другой список. Для примера. Пусть есть список А, содержащий элементы А1, А2, А3..., Список В, содержащий В1, В2, В3..., списки А1, А2, соответственно, содержат А11, А12, А13 и А21, А22, А23, В. При этом в списке А2 нет информации, что В - сам по себе список. Эта информаци - косвенная, основана только на том, что список В существует. То есть изначально неизвестно ничего - ни уровни списков, ни вложенность одного списка в другой. Только то, что есть какой-то двухуровневый список. И таких списков - много. А нужно найти все уровни списков и составить собственно сам многоуровневый список. При этом возможно, к примеру, что многоуровневых списков будет несколько, когда "верхних" элементов будет несколько. Возможно также "пересечение" списков, когда один список частично содержит элементы другого. Каждый список хранится в файле, название которого совпадает с названием списка. К примеру, файл А содержит список А.
Желательно дать либо название алгоритма, если такой существует, либо хоть некую начальную точку, так как пока кроме простого перебора элементов в каждом файле и сопоставление с наличием других файлов с названиями как у элементов данного файла, других идей нет.
Заранее спасибо за ответ.