1

我想创建 DTD 文件来检查 XML 文件是否是一个二叉树,其中每个节点最多有 2 个儿子,如果它们退出,每个节点都应该有一个指向子节点的指针

我怎样才能在 XML 中实现它?

提前致谢

4

1 回答 1

3

在 XML 中编写二叉树的方法有很多。这是一个;它假定每个节点的值都包含在名为“值”的属性中。

<!ELEMENT node (node, node?) >
<!ATTLIST node value CDATA #REQUIRED >

也可以要求一个节点要么有两个孩子,要么没有(维基百科说这被称为完整的二叉树):

<!ELEMENT node (node, node)? >

第一个 DTD 而不是第二个 DTD 将接受简单二叉树的 XML 表示(来自 Wikipedia article on binary trees):

<node value="2">
  <node value="7">
    <node value="2"/>
    <node value="6">
      <node value="5"/>
      <node value="11"/>
   </node>
  <node value="5">
    <node value="9">
      <node value="4"/>
    </node>
  </node>
</node>

[哦,是的,还有一件事。如果您以允许其他人重现问题的形式展示您尝试过的内容,您更有可能在 Stack Overflow 上得到很好的回答(如果您不知道从哪里开始,这当然很困难)。不展示你的工作给人的印象是你什么都没做过,只是想让别人为你做你的工作。在SO 帮助文件以及 Eric Raymond 和 Rick Moen 的文章How to ask questions the smart way中有关于提出有效问题的好建议。]

于 2013-06-19T18:23:38.717 回答