【问题标题】:Printing to screen n Strings打印到屏幕 n 个字符串
【发布时间】:2014-04-09 21:57:19
【问题描述】:

所以基本上我有一个用字符数组填充的 AVL 树,并且我知道如何使用递归函数 print_inorder 打印所有数组。我现在要做的是用一个函数打印这些数组,该函数接收一个 int 值,告诉一次要打印多少个数组,然后期待用户采取一些行动来继续打印更多数组。

void print_inorder(pointer* p)
{
    if (p!=NULL)
    {
        print_inorder(p->left);
        printf("%s\n",p->name);
        print_inorder(p->right);
    }
}

这是我的打印功能。我想做的是创建一个链接列表,然后循环遍历它,但我确信这不是最好的方法。 提前谢谢你。

【问题讨论】:

  • pointer 类型是如何定义的?
  • 创建一个链表对我来说听起来不错。实际上,您还有另一个类似于 print_inorder 的函数,但不是 printf("%s\n",p->name),而是 AddToList(thelist, p)
  • 它只是一个指向结构的指针...我放了 * 但实际情况是我定义了一个指向 avl 树的指针,所以它真的很像 (avl_pointer p)

标签: c printing avl-tree


【解决方案1】:

要打印十个字符串吗?

你应该试试这样的:

       int print_inorder(pointer* p, int nb)
       {
           if (p!=NULL)
           {
               nb = print_inorder(p->left,nb);
               if (nb >=0){
                    nb --;
                    printf("%s\n",p->name);
               }
               nb = print_inorder(p->right,nb);
           }
            return nb;
       }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2022-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多