-5

我正在尝试为三度树的中序遍历(左、节点、中、右)编写算法。

下面是一个正确的算法吗?

inorder(node)
{
  if (node) {
    inorder(node->left);
    print("%d", node->value);
    if (node->mid) {
      inorder(node->mid);
      print("%d", node->value);
      inorder(node->right);
    }
    else
      inorder(node->right);
  }
}
4

1 回答 1

0

您错误地打印了两次节点的值。

你不需要检查node->mid,因为这是在里面检查的inorder(node->mid);

inorder(node)
{
  if (node)
  {
    inorder(node->left);
    print("%d ", node->value);
    inorder(node->mid);
    inorder(node->right);
  }
}
于 2013-10-30T08:10:51.300 回答