Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int punktI(treeNode* root, int k)
- {
- int lvl{ 0 };
- int kol{ 0 };
- bool a, b;
- queueNode* q_top, * q_end;
- treeNode* p;
- treeNode* m;
- treeNode* q;
- p = root;
- m = root;
- q = 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)
- {
- b = true;
- lvl++;
- }
- if (lvl > k)
- break;
- if (k == 0 && p == root)
- return 1;
- if (p->left)
- {
- push_queue(q_top, q_end, p->left);
- q = p->left;
- if (q == p->left && k == lvl)
- kol++;
- q = p;
- if (b)
- m = q->left;
- if (m == q->left)
- b = false;
- }
- if (p->right)
- {
- push_queue(q_top, q_end, p->right);
- q = p->right;
- if (q == p->right && k == lvl)
- kol++;
- q = p;
- if (b)
- m = q->right;
- }
- } while (q_top);
- }
- return kol;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement