2017-10-20 27 views
-4

Par exemple:trouver le parcours infixe de l'arbre et les imprimer en niant tout autre numéro

  1 
    / \ 
    /  \ 
    2    3 
/\  /\ 
4 5  6 7 

Inorder sortie traversal: 4 2 5 1 6 3 7

Sortie prévue: 4 -2 5 -1 6 -3 7

Code

pour inorder est

Node * func(struct Node * root){ 
if(root!=NULL) 
{ 
func(root->lChild); 
cout<<root->nodeValue<<" "; 
func(root->rChild); 
} 
return NULL; 

}

+1

Nous supposons que vous ne pouvez pas mettre tous les éléments dans une liste, puis nier, n'est-ce pas? – alseether

+3

quelle est la question? votre titre se lit comme la réponse à la question que vous n'avez pas demandé, comme le dit @alseether, tout d'abord obtenir tous les numéros et ensuite les imprimer avec des signes alternatifs – user463035818

+1

Bonne chance pour vos devoirs, mais vraiment si vous voulez de l'aide, vous devriez poster ce que J'ai essayé, et le problème exact que vous avez rencontré. – UKMonkey

Répondre

1

Tout ce que vous pourriez avoir à faire, ajoutez un argument supplémentaire pour garder une trace de signe autre, quelque chose comme ce qui suit:

Node * func(struct Node * root, int& signV){ 
    if(root!=NULL) 
    { 
    func(root->lChild, signV); 
    cout<<root->nodeValue * signV <<" "; signV *= -1 ; // Change sign here 
    func(root->rChild, signV); 
    } 
    return NULL; 
} 

See Here