Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- tree * sum(tree *root)//функция вычисления содержимого дерева
- {
- if(root->fl && root->right->fl) //если в правом поддереве знак идём туда
- sum(root->right);
- if(root->fl && root->left->fl) //если в левом поддереве знак идём туда
- sum(root->left);
- if(root->fl && root->right->ch && root->left->ch)//если стоим на знаке и в поддеревьях числа то выполняем операцию
- {
- if(!root->right->fl)
- scanf("%d",&root->right->ch);
- if(!root->left->fl)
- scanf("%d",&root->left->ch);
- switch(root->zn)
- {
- case '*': root->ch=(root->right->ch)*(root->left->ch);break;
- case ':':case '/': root->ch=(root->right->ch)/(root->left->ch);break;
- case '+':root->ch=(root->right->ch)+(root->left->ch);break;
- case '-':root->ch=(root->right->ch)-(root->left->ch);break;
- }
- }
- return root;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement