在c中用括号连续打印

printing in a row with parentheses in c

我需要你的帮助。 我需要按顺序打印一个二叉树——那样​​:

如果我只有一个节点打印:(3)

如果我向这棵树插入一个节点 2- 它将打印:((2)<(3))

如果我向这棵树插入一个节点 7- 它将打印:((2)<(3)>(7))

如果我向这棵树插入一个节点 6- 它将打印:((2)<(3)>((6)<(7)))

如果我向这棵树插入一个节点 9- 它将打印:((2)<(3)>((6)<(7)>(9)))

我需要以递归方式打印它,但我迷失了括号 有人对此有想法或线索吗?

谢谢 (:

这是一个 in-order 操作。

  • 如果你当前节点有任何children,打印(.
  • 如果有左边child,打印它的结构;然后 <.
  • 在括号中打印当前节点。
  • 如果有一个正确的child,打印>然后打印它的结构。
  • 如果当前节点有children,打印')'。

您正在寻找中序二叉树遍历。 看一下代码,在需要的时候加上括号和尖括号<>

 void inorder(struct tree *root)
 {
   if(root != NULL)
   {
     inorder(root->left);
     printf(" %d",root->info);
     inorder(root->right);
   }
   return;
 }

tree traversal in c