Top View Of Binary Tree Practice Gfg Code Example
Example: gfg top view of tree
/* This is not the entire code. It's just the function which implements bottom view. You need to write required code. */ // Obj class is used to store node with it's distance from parent. class Obj { public: Node *root; int dis; // distance from parent node. distance of root node will be 0. Obj(Node *node, int dist) { root = node; dis = dist; } }; void topView(Node *root) { queue<Obj*> q; q.push(new Obj(root, 0)); map<int,int> m; while(!q.empty()) { Obj *ob = q.front(); q.pop(); /* insert node of unique distance from parent node. ignore repitation of distance. */ if(m.find(ob->dis) == m.end()) m[ob->dis] = ob->root->data; if(ob->root->left != NULL) q.push(new Obj(ob->root->left, ob->dis-1)); if(ob->root->right != NULL) q.push(new Obj(ob->root->right, ob->dis+1)); } // printing nodes. for(auto it=m.begin(); it!=m.end(); it++) cout << it->second << "\t"; cout << endl; }
Comments
Post a Comment