السلام عليكم
تقول الكتب علي الـ Top للـStack انه متغير يشير علي المكان الخالي للـStack لذلك يتم وضعه في اول مرة بـ- -1
ماذا لو جعلنه متغير يشير علي اخير مكان للـStack لذلك يتم وضعه في اول مرة بـ- 0
السؤال ايهما افضل ؟ ولماذا؟
السلام عليكم
تقول الكتب علي الـ Top للـStack انه متغير يشير علي المكان الخالي للـStack لذلك يتم وضعه في اول مرة بـ- -1
ماذا لو جعلنه متغير يشير علي اخير مكان للـStack لذلك يتم وضعه في اول مرة بـ- 0
السؤال ايهما افضل ؟ ولماذا؟
كله واحد :)
لكن لو انك مسوي الستاك بالـ array يفضل انك تخليه -1 لأن صفر يشير لأول المنت بالمصفوفة بس
السلام عليكم
انا عارف انه كله واحد (الاثنين صح) ولكن ايهما افضل في السرعه ؟
وما هي علاقة المصفوفه (Array) بي -1 موضوع الـ -1 والـ 0 يخص الـTop وليس المصفوفه (Array)
شكرا
لا علاقة لهما بالسرعة لأنهما في كلا الحالتين مجرد نقطة مرجعية.
السلام عليكم
عندما يكون الـTop يبدء بي -1 تكون الـpop هكذا
public char pop()
{
if (this.top < 0)
throw new Exception("An Error Occured");
char t = this.myArray[this.top];
this.top--;
return t;
}اما عندما يكون الـTop يبدء بي صفر تكون الـpop هكذا
public char pop()
{
if (this.top < 0)
throw new Exception("An Error Occured");
return myArray[--top];
}هل هذا اقل في المساحة واسرع ؟
شكرا
تم تعديل هذه المشاركة بواسطة قبل الاول في 4 ديسمبر 2006 في 15:34
إذا لم أكم مخطئاً الكود الثاني يجب ان يكون هكذا
public char pop()
{
if (this.top < 0)
throw new Exception("An Error Occured");
return myArray[top--];
}لأن عملية الطرح يجب أن تتم بعد عملية إستعادة القيمة الموجودة في المصفوفة
و الثاني على ما أعتقد أسرع لأنك ألغيت عملية زائدة و هي تعريف و توكيل قيمة إلى المتغير t و لو أنني أعتقد أن الكومبايلرات الحديثة تقوم باختصار هذه العملية آلياً.
ملاحظة أخرى هي أن المصفوفة ليست الحاوي المناسب لبيانات الـstack لأنك ستضطر لإعادة تحجيمها كلما تغير حجم الستاك و الأفضل استخدام Linked List ذات إتجاه واحد.
انا اسف هي غلطة مطبعيه هي هنا الـTop بدء بصفر
بمعني ان الـTop يشير علي اول مكان خالي
والا فما هو الفرق بين الاثنين
وشكرا
تم تعديل هذه المشاركة بواسطة قبل الاول في 4 ديسمبر 2006 في 15:34
بالنسبة للملحوظة فعلا انا معاك ولكن المراد من الموضوع هو اخذ رايكم في ان الـTop لما يبدء بقيمة صفر افضل (اي يشير علي المكان الخالي )
في حالة استخدام مصفوفة كحاوبة فنظرياً استخدام صفر يبدو أفضل بسبب نقص عملية. و لكن هذا فقط في حالة استخدام مصفوفة كحاوية و هي كما ذكرت بنفسك ليس مناسباً. أما في حالة استخدام Linked List فلا أعتقد أن الرقم المرجعي سيسبب أي فرق.
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…