#include <iostream>
using namespace std;
struct BinaryTreeNode{
BinaryTreeNode* left;
BinaryTreeNode* right;
int val;
BinaryTreeNode(int value){
left = NULL;
right = NULL;
val = value;
}
};
void inorder(BinaryTreeNode*root){
if(root == NULL)
return;
inorder(root->left);
count<<root->val<<" ";
inorder(root->right);
}
void preorder(BinaryTreeNode*root){
if(root == NULL)
return;
cout<< root->val<<" ";
preorder(root->left);
preorder(root->right);
}
void postorder(BinaryTreeNode*root){
if(root == NULL)
return:
postoder(root->left);
postorder(root->right);
cout<< root->val<<" ";
}
int SumOfAllNodes(BinaryTreeNode*root){
if (root == NULL)
return 0;
return root->val + SumOfAllNodes(root->left) + SumOfAllNodes(root->right);
}
int main(){
BinaryTreeNode*root = new BinaryTreeNode(5);
BinaryTreeNode* leftNode = new BinaryTreeNode(2);
BinaryTreeNode* rightNode = new BinaryTreeNode(7);
root->left = leftNode;
root->right= rightNode;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IEJpbmFyeVRyZWVOb2RlewoJQmluYXJ5VHJlZU5vZGUqIGxlZnQ7CglCaW5hcnlUcmVlTm9kZSogcmlnaHQ7CglpbnQgdmFsOwoJCglCaW5hcnlUcmVlTm9kZShpbnQgdmFsdWUpewoJCWxlZnQgPSBOVUxMOwoJCXJpZ2h0ID0gTlVMTDsKCQl2YWwgPSB2YWx1ZTsKCX0KfTsKCnZvaWQgaW5vcmRlcihCaW5hcnlUcmVlTm9kZSpyb290KXsKCWlmKHJvb3QgPT0gTlVMTCkKCXJldHVybjsKCQoJaW5vcmRlcihyb290LT5sZWZ0KTsKCQoJY291bnQ8PHJvb3QtPnZhbDw8IiAiOwoJCglpbm9yZGVyKHJvb3QtPnJpZ2h0KTsKfQogdm9pZCBwcmVvcmRlcihCaW5hcnlUcmVlTm9kZSpyb290KXsKIAlpZihyb290ID09IE5VTEwpCiAJcmV0dXJuOwogCQogCWNvdXQ8PCByb290LT52YWw8PCIgIjsKIAkKIAlwcmVvcmRlcihyb290LT5sZWZ0KTsKIAkKIAlwcmVvcmRlcihyb290LT5yaWdodCk7CiB9CiAgdm9pZCBwb3N0b3JkZXIoQmluYXJ5VHJlZU5vZGUqcm9vdCl7CiAgCWlmKHJvb3QgPT0gTlVMTCkKICAJcmV0dXJuOgogIAkKICAJcG9zdG9kZXIocm9vdC0+bGVmdCk7CiAgCQogIAlwb3N0b3JkZXIocm9vdC0+cmlnaHQpOwogIAkKICAJY291dDw8IHJvb3QtPnZhbDw8IiAiOwogIAkKICB9CiAgIAogIGludCBTdW1PZkFsbE5vZGVzKEJpbmFyeVRyZWVOb2RlKnJvb3QpewogIAlpZiAocm9vdCA9PSBOVUxMKQogICAgICAgIHJldHVybiAwOwogICAgcmV0dXJuIHJvb3QtPnZhbCArIFN1bU9mQWxsTm9kZXMocm9vdC0+bGVmdCkgKyBTdW1PZkFsbE5vZGVzKHJvb3QtPnJpZ2h0KTsKICB9CgppbnQgbWFpbigpewoJQmluYXJ5VHJlZU5vZGUqcm9vdCA9IG5ldyBCaW5hcnlUcmVlTm9kZSg1KTsKCUJpbmFyeVRyZWVOb2RlKiBsZWZ0Tm9kZSA9IG5ldyBCaW5hcnlUcmVlTm9kZSgyKTsKCUJpbmFyeVRyZWVOb2RlKiByaWdodE5vZGUgPSBuZXcgQmluYXJ5VHJlZU5vZGUoNyk7Cglyb290LT5sZWZ0ID0gbGVmdE5vZGU7Cglyb290LT5yaWdodD0gcmlnaHROb2RlOwp9Cg==