السلام عليكم ...
المطلوب : كتابة دالة تقوم بطباعة الـ i-th element for a BST ، يعني لو كان عندي شجرة BST و هذه الشجرة تحتوي على عناصر (أرقام) فالمطلوب مني طباعة العنصر (i) من حيث الترتيب التصاعدي .
مثال : الحصول على العنصر 3 من شجرة تحتوي على 5 عناصر.
هذا الـ node للشجرة ...
// a structure to a BST without a rank-number
struct T1
{
T1 * l_child;
T1 * r_child;
int data;
};و هذه محاولتي ...
// search for the element with the specific rank
void search_rank (T1 * ptr, int i, int &counter)
{
if (ptr==NULL || counter>i)
return;
else
{
search_rank(ptr->l_child, i, counter);
counter++;
if (counter == i)
{
counter += i;
cout<<(ptr->data)<<' ';
return;
}
search_rank(ptr->r_child, i, counter+=1);
}
}مع إن الدالة كتبتها بنفس طريقة الـ in-order traversal أو الـ left-visit-right method .
الرجاء المساعدة لأني أشعر أن رأسي سينفجر :mad: