Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int punktZ(treeNode* root, int e)
- {
- bool a = true;
- bool b;
- int lvl = -1;
- queueNode* q_top, * q_end;
- treeNode* p;
- treeNode* q;
- treeNode* m;
- p = root;
- q = root;
- m = root;
- if (p)
- {
- q_top = NULL;
- q_end = NULL;
- push_queue(q_top, q_end, p);
- do
- {
- pop_queue(q_top, p);
- if (m == p)
- {
- lvl++;
- b = true;
- }
- if (p == q && p==root && a)
- {
- if (p->data == e)
- return lvl;
- lvl++;
- a = false;
- }
- if (p->left)
- {
- q = p->left;
- if (q->data == e)
- return lvl;
- push_queue(q_top, q_end, p->left);
- q = p;
- if (b)
- m = q->left;
- if (m == q->left)
- b = false;
- //a = true;
- }
- //q=p;
- if (p->right)
- {
- q = p->right;
- if (q->data == e)
- return lvl;
- q = p;
- push_queue(q_top, q_end, p->right);
- if (b)
- m = q->right;
- }
- } while (q_top);
- }
- return lvl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement