检查输入是否为有效的二叉树(使用联合查找)

Sus*_*hil 6 binary-tree graph union-find

给定以(A,B)形式的多个元组,其中A是二叉树中的父级,B是子级,请查找输入是否有效。提供了4个错误条件:

  1. 如果父母有两个以上的孩子,
  2. 如果输入了重复的元组,
  3. 如果树有周期,
  4. 如果可能有多个根。

如果违反多个有效条件,请按上述顺序打印条件。如果输入有效,则以串行表示形式打印树。例如:如果输入是(A,B),(B,C),(A,D),(C,E),则输出:(A(B(C(E())))(D))

我正在考虑通过联合查找数据结构来解决它,但无法对其进行编码。谁能帮助我了解c / c ++中的逻辑或伪代码