#include <stdio.h>
#include <stdlib.h>
#include<iostream>
using namespace std;
/* A tree node structure */
struct node
{
int data;
struct node *left;
struct node *right;
};
/* The functions prints all the keys which in the given range [k1..k2].
The function assumes than k1 < k2 */
void Print(struct node *root, int k, int& p)
{
/* base case */
if ( NULL == root )
return;
Print(root->left,k,p);
// cout<<p<<" "<<root->data<<endl;
if(p==k-1)
{
cout<<root->data<<endl;
p++;
return;
}
p++;
Print(root->right,k,p);
}
/* Utility function to create a new Binary Tree node */
struct node* newNode(int data)
{
struct node *temp = new struct node;
temp->data = data;
temp->left = NULL;
temp->right = NULL;
return temp;
}
/* Driver function to test above functions */
int main()
{
struct node *root = new struct node;
int k1 = 5;
int p=0;
/* Constructing tree given in the above figure */
root = newNode(20);
root->left = newNode(8);
root->right = newNode(22);
root->left->left = newNode(4);
root->left->right = newNode(12);
Print(root,k1,p);
getchar();
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKCi8qIEEgdHJlZSBub2RlIHN0cnVjdHVyZSAqLwpzdHJ1Y3Qgbm9kZQp7CiAgaW50IGRhdGE7CiAgc3RydWN0IG5vZGUgKmxlZnQ7CiAgc3RydWN0IG5vZGUgKnJpZ2h0Owp9OwoKLyogVGhlIGZ1bmN0aW9ucyBwcmludHMgYWxsIHRoZSBrZXlzIHdoaWNoIGluIHRoZSBnaXZlbiByYW5nZSBbazEuLmsyXS4KICAgIFRoZSBmdW5jdGlvbiBhc3N1bWVzIHRoYW4gazEgPCBrMiAqLwp2b2lkIFByaW50KHN0cnVjdCBub2RlICpyb290LCBpbnQgaywgaW50JiBwKQp7CiAgIC8qIGJhc2UgY2FzZSAqLwogICBpZiAoIE5VTEwgPT0gcm9vdCApCiAgICAgIHJldHVybjsKICAgICAgCiAgICAgICAgICAgUHJpbnQocm9vdC0+bGVmdCxrLHApOwoJICAgICAgCgkgICAgIC8vIGNvdXQ8PHA8PCIgIjw8cm9vdC0+ZGF0YTw8ZW5kbDsKCSAgICAgIGlmKHA9PWstMSkKCSAgICAgIHsKCSAgICAgIAljb3V0PDxyb290LT5kYXRhPDxlbmRsOwoJICAgICAgCXArKzsKCSAgICAgIAlyZXR1cm47CgkgICAgICB9CgkgICAgICBwKys7CgkgICAgICBQcmludChyb290LT5yaWdodCxrLHApOwoKfQoKLyogVXRpbGl0eSBmdW5jdGlvbiB0byBjcmVhdGUgYSBuZXcgQmluYXJ5IFRyZWUgbm9kZSAqLwpzdHJ1Y3Qgbm9kZSogbmV3Tm9kZShpbnQgZGF0YSkKewogIHN0cnVjdCBub2RlICp0ZW1wID0gbmV3IHN0cnVjdCBub2RlOwogIHRlbXAtPmRhdGEgPSBkYXRhOwogIHRlbXAtPmxlZnQgPSBOVUxMOwogIHRlbXAtPnJpZ2h0ID0gTlVMTDsKCiAgcmV0dXJuIHRlbXA7Cn0KCi8qIERyaXZlciBmdW5jdGlvbiB0byB0ZXN0IGFib3ZlIGZ1bmN0aW9ucyAqLwppbnQgbWFpbigpCnsKICBzdHJ1Y3Qgbm9kZSAqcm9vdCA9IG5ldyBzdHJ1Y3Qgbm9kZTsKICBpbnQgazEgPSA1OwogIGludCBwPTA7CgogIC8qIENvbnN0cnVjdGluZyB0cmVlIGdpdmVuIGluIHRoZSBhYm92ZSBmaWd1cmUgKi8KICByb290ID0gbmV3Tm9kZSgyMCk7CiAgcm9vdC0+bGVmdCA9IG5ld05vZGUoOCk7CiAgcm9vdC0+cmlnaHQgPSBuZXdOb2RlKDIyKTsKICByb290LT5sZWZ0LT5sZWZ0ID0gbmV3Tm9kZSg0KTsKICByb290LT5sZWZ0LT5yaWdodCA9IG5ld05vZGUoMTIpOwoKICBQcmludChyb290LGsxLHApOwoKICBnZXRjaGFyKCk7CiAgcmV0dXJuIDA7Cn0=