Проверить правильность ввода двоичного дерева (используя union-find)

Учитывая несколько кортежей в форме (A,B), где A - родительский элемент, а B - дочерний элемент в двоичном дереве, найдите, допустим ли ввод или нет. Были предоставлены 4 условия ошибки:

  1. Если у родителя более 2 детей,
  2. Если введены повторяющиеся кортежи,
  3. Если у дерева есть цикл,
  4. Если возможно более одного рута.

При нарушении нескольких условий действия выведите условие, указанное первым в указанном порядке. Если введенные данные верны, выведите дерево в последовательном представлении. Например: если вход (A,B), (B, C), (A, D), (C, E), вывод: (A (B (C (E))) (D))

Я думаю о том, чтобы решить это через объединение данных, но не могу его кодировать. Может кто-нибудь помочь мне с логикой или псевдокодом в C / C++

0 ответов

Другие вопросы по тегам