hashing Competitive programming

 #include<bits/stdc++.h>

using namespace std;
#define vi vector<int>
#define pii pair<intint>
#define vii vector<pii>
#define rep(iabfor(int i=a; i<b; i++)
#define ff first
#define ss second
#define setBits(xbuiltin_popcount(x)

struct Node
{
    int key;
    Node *left, *right;
};

Node* newNode(int key)
{
    Node* node=new Node;
    node->key=key;
    node->left=node->right=NULL;
    return node;
}

void getVerticalOrder(Node* rootint hdismap<intvi&m)
{
    if(root==NULL)
     return;
     
     m[hdis].push_back(root->key);
     getVerticalOrder(root->left, hdis-1m);
     getVerticalOrder(root->right, hdis+1m);
     
}
signed main(){
    Node *root=newNode(10);
    root->left=newNode(7);
    root->right=newNode(4);
    root->left->left=newNode(3);
    root->left->right=newNode(11);
    root->right->left=newNode(14);
    root->right->right=newNode(6);

    map<intvector<int>> m;
    int hdis=0;
    getVerticalOrder(root, hdis, m);

    map<intvi>::iterator it;
   
    for(it=m.begin(); it!=m.end(); it++){
        for(int i=0; i<(it->ss).size(); i++){
            cout<<(it->ss)[i]<<" ";
        }
        cout<<endl;
    }
    


  return 0;
}

Comments

Popular posts from this blog

priority_queue

Alignment in css

Queue data structure in c++