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

How can i do this function using recursion؟

مغلق
بدأه Computeryah في 1 ديسمبر 2006 · 8 رد · 577 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اقتباس
For the List class, add a Boolean-valued function that determines whether the data items in the linked list are arranged in ascending order.

بعد اذنكم اريد معرفة كيف اعمل هذه الفنكشن بالـ recursion :

 



bool list::isOrdered() const

{

Node *ptr = first; Node *following;

bool isOrdered = true;

if(mysize >=2 )

{

following = ptr->next;

while (following !=Null && isOrdered)

{isOrdered=(ptr->data->following->data);

ptr=following;

following = following->next;}

}
return isOrdered;

}

اريد ان افهم فكرة عمل ال recursion وكيف يمكني تطبيقها على الفنكشن السابقة ...

#2

بسم الله الرحمن الرحيم

السلام عليكم

بالنسبة للrecursive أدخل ع اللينك دة

http://guideme.itgo.com/atozofc/

أو أفضل بكثير انك تحبث ف القسم لان كان فية موضوع لمناقشة ال recursive وكيفية عملها وكان موضوع رائع فهمت منة ال recursive فأنصحك بالبحث عنة وقرائتة

أما عن كيفية عمل الدالة

ببساطة هتعمل دالة وليكن isOrdered ليها

two arguments ( ptr , following)

كالتالى

Boolean isOrdered( ptr , following)

داخل الدالة أعمل check هل المتغير اللى أسمة following بيساوى null

وبالتالى أعمل

return isOrdered

;

if(following == null )
 return isOrdered;
else

غير كدة هعمل check على البيانات الموجودة داخل ال

two pointers (ptr , following)

لو أقل يخلى

isOrdered = true;

وبعد كدة أكتب

Return isOrdered( following , following->data);

علشان أكرر الدالة.

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#3

وعليكم السلام

شكرا eng 3llam على اللنك :)

صح كذا ؟

Boolean isOrdered( Node *ptr , Node *following)


{

if(following == null )

return isOrdered;

else

if (ptr < following)

isOrdered = true;

Return isOrdered( following , following->data);

}
#4

كمان هذا صح ؟

   bool isOrdered (node* ptr)
   {
	   bool Ordered = false;
	   if(ptr = 0)
		  Ordered= true;
	   else if(ptr->next == 0)
		 Ordered = true;
  else if(ptr->data <= *(ptr->next->data) && isOrdered(ptr->next))
	  Ordered = true;
	   else
		  Ordered = false;
	   return Ordered;
   }
#5

تصحيح صغير بس, إنت بتنادى الفنكشن ب following->next و ليس following->data

#6
Boolean isOrdered( Node *ptr , Node *following)


{

if(following == null )

return isOrdered;

else

if (ptr < following)

isOrdered = true;

Return isOrdered( following , following->next);

}

كذا تمام ؟

#7

السلام عليكم,

اخي كيف تكتب هذا

isOrdered = true;

اليس isOrdered اسم الداله؟؟!!!

يمكنك كتابت الكود بهذ الشكل

bool isOrdered( node *ptr , node *following)
{
	if(following == NULL ) return true;
	else if(ptr->entry > following->entry) return false;
	isOrdered( ptr->next , following->next);
}

ENG. IMAD, Programing is a way of life, It's in the air, we breath It's pumps through our veines, Without it, we soon crumble to dust

#8

وعليكم السلام Super_emad55

صحيح ! ..

جزاك الله خير ...

#9

واياك

ENG. IMAD, Programing is a way of life, It's in the air, we breath It's pumps through our veines, Without it, we soon crumble to dust

هذا الموضوع مغلق.

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