Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

#

#include <iostream>
using namespace std;

class myNode
{
public:
int value;
myNode *leftChild;
myNode *rightChild;
};

myNode *createNode(int data)


{
myNode *newNode = new myNode();
newNode->value = data;
newNode->leftChild = NULL;
newNode->rightChild = NULL;

return newNode;
}

// inserting nodes
myNode *insertNode(myNode *root, int key)
{
if (root == NULL)
{
return createNode(key);
}
if (key < root->value)
{
root->leftChild = insertNode(root->leftChild, key);
}
else if (key > root->value)
{
root->rightChild = insertNode(root->rightChild, key);
}
return root;
}

// calculate size of tree


int calculateSize(myNode *node)
{
if (node == NULL)
{
return 0;
}
else
{
return (calculateSize(node->leftChild) + 1 + calculateSize(node-
>rightChild));
}
}

// print the tree


void displayTree(myNode *node)
{
if (node == NULL)
{
return;
}

// In-order traversal: Left, Root, Right


displayTree(node->leftChild);
cout << node->value << " ";
displayTree(node->rightChild);
}

int main()
{
system("cls");
myNode *treeRoot = NULL;
int num, numValues;

cout << "Enter the number of nodes: ";


cin >> numValues;

// get values to add in tree


for (int i = 0; i < numValues; ++i)
{
cout << "Enter value " << i + 1 << ": ";
cin >> num;
treeRoot = insertNode(treeRoot, num);
}

cout << "Size of tree: " << calculateSize(treeRoot) << endl;

cout << "Elements in the tree: ";


displayTree(treeRoot);

return 0;
}

You might also like