#include <stdio.h>
#include <stdlib.h>
// Define the structure of a tree node
struct Node {
int data;
struct Node* left;
struct Node* right;
};
// Function to create a new node
struct Node* createNode(int data) {
struct Node
* newNode
= (struct Node
*)malloc(sizeof(struct Node
)); newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
// Function to calculate the size of the tree
int calculateSize(struct Node* root) {
if (root == NULL)
return 0; // Base case: an empty tree has size 0
return calculateSize(root->left) + calculateSize(root->right) + 1;
}
int main() {
// Creating the tree shown in your image
struct Node* root = createNode(5);
root->left = createNode(1);
root->right = createNode(6);
root->left->left = createNode(3);
root->right->left = createNode(7);
root->right->right = createNode(4);
// Calculate the size of the tree
int size = calculateSize(root);
// Output the size
printf("The size of the tree is: %d\n", size
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCi8vIERlZmluZSB0aGUgc3RydWN0dXJlIG9mIGEgdHJlZSBub2RlCnN0cnVjdCBOb2RlIHsKICAgIGludCBkYXRhOwogICAgc3RydWN0IE5vZGUqIGxlZnQ7CiAgICBzdHJ1Y3QgTm9kZSogcmlnaHQ7Cn07CgovLyBGdW5jdGlvbiB0byBjcmVhdGUgYSBuZXcgbm9kZQpzdHJ1Y3QgTm9kZSogY3JlYXRlTm9kZShpbnQgZGF0YSkgewogICAgc3RydWN0IE5vZGUqIG5ld05vZGUgPSAoc3RydWN0IE5vZGUqKW1hbGxvYyhzaXplb2Yoc3RydWN0IE5vZGUpKTsKICAgIG5ld05vZGUtPmRhdGEgPSBkYXRhOwogICAgbmV3Tm9kZS0+bGVmdCA9IE5VTEw7CiAgICBuZXdOb2RlLT5yaWdodCA9IE5VTEw7CiAgICByZXR1cm4gbmV3Tm9kZTsKfQoKLy8gRnVuY3Rpb24gdG8gY2FsY3VsYXRlIHRoZSBzaXplIG9mIHRoZSB0cmVlCmludCBjYWxjdWxhdGVTaXplKHN0cnVjdCBOb2RlKiByb290KSB7CiAgICBpZiAocm9vdCA9PSBOVUxMKQogICAgICAgIHJldHVybiAwOyAvLyBCYXNlIGNhc2U6IGFuIGVtcHR5IHRyZWUgaGFzIHNpemUgMAogICAgcmV0dXJuIGNhbGN1bGF0ZVNpemUocm9vdC0+bGVmdCkgKyBjYWxjdWxhdGVTaXplKHJvb3QtPnJpZ2h0KSArIDE7Cn0KCmludCBtYWluKCkgewogICAgLy8gQ3JlYXRpbmcgdGhlIHRyZWUgc2hvd24gaW4geW91ciBpbWFnZQogICAgc3RydWN0IE5vZGUqIHJvb3QgPSBjcmVhdGVOb2RlKDUpOwogICAgcm9vdC0+bGVmdCA9IGNyZWF0ZU5vZGUoMSk7CiAgICByb290LT5yaWdodCA9IGNyZWF0ZU5vZGUoNik7CiAgICByb290LT5sZWZ0LT5sZWZ0ID0gY3JlYXRlTm9kZSgzKTsKICAgIHJvb3QtPnJpZ2h0LT5sZWZ0ID0gY3JlYXRlTm9kZSg3KTsKICAgIHJvb3QtPnJpZ2h0LT5yaWdodCA9IGNyZWF0ZU5vZGUoNCk7CgogICAgLy8gQ2FsY3VsYXRlIHRoZSBzaXplIG9mIHRoZSB0cmVlCiAgICBpbnQgc2l6ZSA9IGNhbGN1bGF0ZVNpemUocm9vdCk7CgogICAgLy8gT3V0cHV0IHRoZSBzaXplCiAgICBwcmludGYoIlRoZSBzaXplIG9mIHRoZSB0cmVlIGlzOiAlZFxuIiwgc2l6ZSk7CgogICAgcmV0dXJuIDA7Cn0K