PDA

View Full Version : سوال: پاس دادن به عنوان آرگومان یک کلاس



irpersian20
جمعه 25 اسفند 1391, 21:23 عصر
سلام

من چند تا کلاس دارم.
1.یک کلاس اعداد تصادفی درست میکنه برام.
2.یک کلاس صف پیاده سازی کردم.
3.یک کلاس مینمم عنصر در صف رو برام پیاده میکنه.
داخل کلاس 1 یک شی وجود داره یکی شی کلاس 2 یعنی صف هست .به این صورت که میاد اعداد تصادفی درست میکنه و میریزه تو صف.
حالا یک کلاس دارم که داخل اون اومدم یک شی از کلاس 3 ایجاد کردم.. یعنی مینمم عنصر در صف
حالا به عنوان آرگومان سازنده این شی مینمم من باید صف رو بفرستم . همان صف که الان حاوی عناصر تصادفی است.اما موندم چطوری باید این صف رو که الان پر شده از اعداد و اماده هست برای مینمم گیری به عنوان سازنده بفرستم.
من باید شی رو بفرستم؟ چطوری؟
کار جالبی نیست درون کلاس اصل بخوام اسمی از کلاس صف ببرم. چون ما فرض میگیریم اصلا طرف نمیدونه صف چی هست و صرفا به حای وارد کردن اعداد دستی از کلاس اعداد تصادفی بهره بردیم.
میشه راهنمایی بفرمائید

Mahmoud.Afrad
جمعه 25 اسفند 1391, 22:31 عصر
پیدا کردن مینیمم که نیاز به کلاس نداره! این وظیفه ای هست که خود کلاس صف باید انجام بده.
پس کد پیدا کردن مینیمم رو به عنوان متد به کلاس صف اضافه کنید تا بتونید از طریق شئ ای که از صف میسازید اون متد رو فراخوانی کنید.

irpersian20
جمعه 25 اسفند 1391, 23:27 عصر
پیدا کردن مینیمم که نیاز به کلاس نداره! این وظیفه ای هست که خود کلاس صف باید انجام بده.
پس کد پیدا کردن مینیمم رو به عنوان متد به کلاس صف اضافه کنید تا بتونید از طریق شئ ای که از صف میسازید اون متد رو فراخوانی کنید.
سلام
پاسخ شما صحیح است.
اما من بعدش میخوام عمل حذف انجام دهم. خوب روی شی انجام حذف انجام داده شده و صف دستخوش تغیر شده.
اما من چند بار دیگه برای کار دیگه به همین صف با همون مقادیر و نظم و ترتیب نیاز دارم.
چی کار کنم؟
شاید تو کلاس اصلی اومدم یک بار دیگه اون شی رو صدا زدیم کار کنه. اگر صف دستخوش تغیرات شده باشه و صف اولیه وجود نداشته باشه با مشکل مواجه میشم.

باید کل شی رو بریزم در یک متغیر از نوع اون شی ؟ یا first و last اون بریزم دو دو تا متغیر دیگه کفایت میکنه؟
و اصل first و last هست؟

Mahmoud.Afrad
شنبه 26 اسفند 1391, 02:02 صبح
کلاس صف باید دارای متدهایی برای درج و حذف و جستجو های لازم داشته باشه.
حالا بستگی داره چطور بخوای استفاده کنی. اگر نیاز باشه مقادیر اولیه رو هم داشته باشی میتونی یک کپی از اطلاعات اولیه در یک صف دیگه داشته باشی و یا اینکه فقط گره های حذف شده رو در یک ساختار دیگه نگه داری.

حذف از وسط صف هم کلا فلسفه صف رو زیر سوال میبره. شما بفرمایید دقیقا برای چه کاری این کارو انجام میدید. و برای چی صف؟

کد هم بزاری چه بهتر!

irpersian20
شنبه 26 اسفند 1391, 02:10 صبح
کلاس صف باید دارای متدهایی برای درج و حذف و جستجو های لازم داشته باشه.
حالا بستگی داره چطور بخوای استفاده کنی. اگر نیاز باشه مقادیر اولیه رو هم داشته باشی میتونی یک کپی از اطلاعات اولیه در یک صف دیگه داشته باشی و یا اینکه فقط گره های حذف شده رو در یک ساختار دیگه نگه داری.

حذف از وسط صف هم کلا فلسفه صف رو زیر سوال میبره. شما بفرمایید دقیقا برای چه کاری این کارو انجام میدید. و برای چی صف؟

کد هم بزاری چه بهتر!
سلام
اتفاقا چند ساعته گیر همین حذف هستم. آخر هم نشد.
یک صف دارم مثلا 6 نود. باید مینیمم رو پیدا کنم. بعد حذفش کنم.
دارم الگوریتم زمانبندی پیاده میکنم. نوع الگوریتم این هست که حداقل زمان رو پیدا کنم.
حالا حداقل زمان یک دفعه وسط هست. نود 4 مثلا. حالا این دیگه لازمش نداریم.
هم جستجو مساله شده برامون هم حذفش.
این مورد اتفاقا باید حل کنم اساسی. و گرنه نمیتونم جلوتر از این برم

در کل برای پیمایش کل صف بدون اینکه عنصری حذف بشه و بتونم مینیمم یا ماکسیمم پیدا کنم بهترین راه حل چیست؟
و برای نادیده گرفتم عنصر چی کار کنم؟ میشه جای حذف یک عدد منفی بزارم تو مقدارش و بگم اگر منفی بود رد شو ازش.
راه بهتری هم هست؟

Mahmoud.Afrad
شنبه 26 اسفند 1391, 07:58 صبح
تا کد نزاری نمیشه نظر داد. کد کلاس صفی که نوشتی رو بزار.
اگر هم بتونی از کلاس آماده System.Collections.Queue استفاده کنی بهتره و فقط روی مینیمم و ماکسیمم و حذف تمرکز میکنی.


راه بهتری که به نظرم میرسه ارث بری از System.Collections.Queue هست. البته اول شما کد کلاستو بزار.