2014-04-09 184 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; 
     }