2014-04-09 149 views
0

所以基本上我有一个AVL树充满了char的数组,我知道如何使用递归函数print_inorder打印所有的数组。我现在想要做的是用一个函数打印这些数组,这个函数接收一个int,告诉我们一次要打印多少个数组,然后等待用户执行一些操作以继续打印更多数组。打印到屏幕n字符串

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

这是我的函数来打印顺便说一句。我想要做的是创建一个链表,然后通过它循环,但我确定这不是最好的方式来做到这一点。 预先感谢您。

+0

是如何'pointer'类型定义? –

+0

创建一个链表对我来说听起来不错。你实际上有另外一个类似于'print_inorder'的函数,而不是'printf(“%s \ n”,p-> name)''你会有类似'AddToList(thelist,p)''的东西。 –

+0

这只是一个指向结构的指针......我把*,但现实是我定义了一个指向avl树的指针,所以它真的很像(avl_pointer p) – PablodeAcero

回答

0

是否要打印十个字符串?

你应该尝试这样的事:

 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; 
     }