Data structures 将自由树表示为二叉树

Data structures 将自由树表示为二叉树,data-structures,tree,Data Structures,Tree,这个练习来自书本。假设有一棵像这样的自由树 第一个问题:我们能把这棵自由树表示成一棵二叉树吗 我认为我们不能把这棵自由树表示成一棵二叉树 因为有些节点有两个子节点以上 第二个问题:我们可以从这个自由树中表示多少个有序树 我不能理解这个问题。节点中没有键来决定如何创建有序树 如果我正确理解了这个问题,那么任务就是将一棵树表示为二叉树,即使用二叉树的数据结构来表示任意树。从结构上讲,这个问题需要一种将任意树内射映射到二叉树的方法 描述了该技术;基本思想是由任意选择的子节点表示节点a的子节点c_1,

这个练习来自书本。假设有一棵像这样的自由树

第一个问题:我们能把这棵自由树表示成一棵二叉树吗

我认为我们不能把这棵自由树表示成一棵二叉树 因为有些节点有两个子节点以上

第二个问题:我们可以从这个自由树中表示多少个有序树

我不能理解这个问题。节点中没有键来决定如何创建有序树


如果我正确理解了这个问题,那么任务就是将一棵树表示为二叉树,即使用二叉树的数据结构来表示任意树。从结构上讲,这个问题需要一种将任意树内射映射到二叉树的方法

描述了该技术;基本思想是由任意选择的子节点表示节点
a
的子节点
c_1,…c_n
,该子节点可能多于两个,例如
c_1
,该子节点成为
a
的左子节点。作为
c_1
的右子级,存储下一个子级
c_2
;等等这意味着,对于每个节点,左子树中存储一个子树,而在右子树中,通过始终选择右子树,存储子树的“备选方案”的“兄弟姐妹”。该方法可概述如下。请容忍我相对较差的文本表示

arbitrary tree

       a
   /  | |   \
c_1 c_2 c_3 c-4

binary tree

    a
   /
 c_1
    \
    c_2
       \
       c_3
          \
          c_4

可以将每个子级具有任意数量节点的树表示为一个树。因此,有些节点有两个以上的子节点并不是拒绝将二叉树作为自由树表示的原因。我认为,第二个问题是,从自由树开始,你可以生成多少不同的树,然后向边添加方向性,使生成的树是有向根树。非常感谢您的回答。我不知道左孩子右兄弟二叉树。对于第二个问题,我必须创建有序的树,而不是无序的树(有根的树)。谢谢你的回答。