الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في التعامل مع الـBST

بدأه hamany-pirlo في 28 ديسمبر 2010 · 1 رد · 339 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ...

المطلوب : كتابة دالة تقوم بطباعة الـ 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:

Program every day for 20 years and you will become a good programmer. Program every day for 10 years and study algorithms on the side and you will become a great programmer !

على الأقل هذا اللي سمعته ...

#2

و أخيرا ، و بعد طوووول إنتظار ، أقدم إليكم الحل ...

// search for the element with the specific rank
void search_rank (T1 * ptr, int i, int &counter)
{
	if (ptr==NULL || counter>i) //leaf or the element was already found
		return;
	else
	{
		search_rank(ptr->l_child, i, counter);
		counter++; //visit
		if (counter == i)
		{
			cout<<(ptr->data)<<' ';
			return;
		}
		search_rank(ptr->r_child, i, counter);
	}
}

:bye:

تم تعديل هذه المشاركة بواسطة hamany-pirlo في 28 ديسمبر 2010 في 23:48

2

Program every day for 20 years and you will become a good programmer. Program every day for 10 years and study algorithms on the side and you will become a great programmer !

على الأقل هذا اللي سمعته ...

مواضيع مشابهة