@Filipp42

Как провести специфический обход древа на Лисп?

Имеется дерево, представляющее школьное расписание.
Вот пример:
'((128 "A" (("математика"  "Мария Ивановна" 210)
            ("русский"     "Мария Ивановна" 210))
           (("физкультура" "Иван Иванович"  102)
            ("литература"  "Румиль"         210)))

  (256 "А" (("литература"   "Румиль"        211)
            ("физкультура" "Иван Иванович"  102))
           (("математика"  "Мария Ивановна" 211)
            ("русский"     "Мария Ивановна" 211))))

В корневом списке находятся списки, в которых хранятся данные об учебном классе, во первых это номер и буква а потом идет список дней. Каждый день представлен списком с ещё несколькими списками (уроками) с названием предмета, именем учителя и номером класса.
Для всех классов уроки начинаются в один день с первого урока.
Мне нужно, чтобы функция параллельно просмотрела списки с уроками день за днем, урок за уроком и проверила, нет ли совпадения классов или учителей в соответствующих списках уроков. Я наверное объяснил криво, так что задавайте уточняющие вопросы.
Насколько вообще удобна такая структура данных, какую можно применить с большим успехом.
P.S. Имена из примера я взял из головы и не стремился ни кого оскорбить
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы