#embrace <bits/stdc++.h>
utilizing namespace std;
struct Node {
int information;
struct Node *left, *proper;
};
struct Node* newNode(int merchandise)
{
struct Node* temp = new Node;
temp->information = merchandise;
temp->left = temp->proper = NULL;
return temp;
}
struct Node* insert(struct Node* node, int key)
{
if (node == NULL)
return newNode(key);
if (key < node->information)
node->left = insert(node->left, key);
else if (key >= node->information)
node->proper = insert(node->proper, key);
return node;
}
void inorderTraversal(Node* root, vector<int>& inorder)
{
if (root == NULL)
return;
inorderTraversal(root->left, inorder);
inorder.push_back(root->information);
inorderTraversal(root->proper, inorder);
}
vector<int> findMode(Node* root)
{
vector<int> inorder;
inorderTraversal(root, inorder);
int mx = INT_MIN;
unordered_map<int, int> mp;
for (int i = 0; i < inorder.measurement(); i++) {
mp[inorder[i]]++;
mx = max(mp[inorder[i]], mx);
}
vector<int> res;
for (auto it : mp) {
if (it.second == mx)
res.push_back(it.first);
}
return res;
}
int predominant()
{
struct Node* root = NULL;
root = insert(root, 50);
insert(root, 60);
insert(root, 50);
insert(root, 160);
insert(root, 170);
insert(root, 140);
insert(root, 100);
auto r = findMode(root);
cout << "Mode of BST is"
<< " ";
for (auto i : r) {
cout << i << " ";
}
return 0;
}