هل بالامكان كتابة كود تجول بالشجرة الثنائية من غير استخدام مفهوم التعاودية ؟؟
سلسلة - شغل مخك (26)
مغلق
- MAX و MIN ثوابت حدود مصفوفة العناصر
- عند عدم العثور على العنصر ترد القيمة MIN-1
- بالطبع يشترط أن تكون المصفوفة مرتبة
Function Where(Var e:; Var T:Array[MIN..MAX] of ):Integer;
Var n,m,d:Integer;
Begin
m:=MIN; n:=MAX;
d:=(m+n)/2;
Where:=MIN - 1;
While m > n do
if T[d] > e then m:=d-1
else
if T[d] < e then n :=d+1
else
Where:=d;
End;هل هذا هو المقصود؟ :confused:
السلام عليكم و رحمة الله وبركاته ,,,
كيف الحال أخي و أستاذي هاني ؟
كيف الحال اخي سالم ؟
مو مبينين من زمان ؟ فينكم ؟!! إن شاء الله تكونو منيحين :)
المهم أستاذ هاني بما أني لن أستخدم التعاوديه
فسألجاء إلى الـ Stack لأن التعاودية هي Stack في
الأصل ;)
طيب شوف هذا الكود بس معليش ما طبقته
لأنه راح يكون طويل شوي في كتابته كامل
أنا سأكتب لك الدالة فقط :)
void trav(tree t)
{
stack s;
tree cur;
cur = t;
do
{
while(cur != null)
{
push(s, cur);
cur = cur->left; // go to the down left item
}
if(!IsEmpty(s))
{
cur = pop(s);
cout << cur->key << endl;
cur = cur->right;
}
}while((cur != null) || !IsEmpty(s));
}
أتمنى أن يكون هذا صحيح ...
مع تحياتي ,,,
أخي هاني ؟ (clock) (clock) (clock)
هذا الموضوع مغلق.