Advertisement
Guest User

lol

a guest
May 25th, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1. tree * sum(tree *root)//функция вычисления содержимого дерева
  2. {
  3.     if(root->fl && root->right->fl)  //если в правом поддереве знак идём туда
  4.         sum(root->right);
  5.  
  6.     if(root->fl && root->left->fl)   //если в левом поддереве знак идём туда
  7.         sum(root->left);
  8.     if(root->fl && root->right->ch && root->left->ch)//если стоим на знаке и в поддеревьях числа то выполняем операцию
  9.     {
  10.         if(!root->right->fl)
  11.             scanf("%d",&root->right->ch);
  12.         if(!root->left->fl)
  13.             scanf("%d",&root->left->ch);
  14.         switch(root->zn)
  15.         {
  16.             case '*': root->ch=(root->right->ch)*(root->left->ch);break;
  17.             case ':':case '/': root->ch=(root->right->ch)/(root->left->ch);break;
  18.             case '+':root->ch=(root->right->ch)+(root->left->ch);break;
  19.             case '-':root->ch=(root->right->ch)-(root->left->ch);break;
  20.         }
  21.     }
  22.    
  23.     return root;
  24. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement