زمان کنونی: ۰۲ آذر ۱۴۰۳, ۱۰:۰۱ ب.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

صف حلقوی

ارسال:
  

alireza01 پرسیده:

صف حلقوی

سلام ، دوستان من یکم تو مفهوم درج و حذف از صف پیوندی حلقوی زمانی که به عنوان مثال ( مکان اول و سوم از یه آرایه ۳ عضوی خالیه الان درج از کجا شروع میشه ؟ ) مشکل دارم این سوالم هست که فک میکنم گزینه ۲ بشه . اگه ممکنه یه مقدار توضیح بدید .



فایل‌(های) پیوست شده

نقل قول این ارسال در یک پاسخ

۱
ارسال:
  

delete4all پاسخ داده:

RE: صف حلقوی

(۱۳ آبان ۱۳۹۵ ۰۶:۲۱ ب.ظ)alireza01 نوشته شده توسط:  سلام ، دوستان من یکم تو مفهوم درج و حذف از صف پیوندی حلقوی زمانی که به عنوان مثال ( مکان اول و سوم از یه آرایه ۳ عضوی خالیه الان درج از کجا شروع میشه ؟ ) مشکل دارم این سوالم هست که فک میکنم گزینه ۳ بشه . اگه ممکنه یه مقدار توضیح بدید .


سلام
گزینه صحیح گزینه ۲ میشه و صف ۱ عنصر توش باقی میمونه بعد از اجرای ترتیب داده شده
و زمانی که عنصر اول و سوم خالی هست درج در خانه سوم انجام میشه چون خانه دوم پر هست و برای درج عنصر بعد یه خونه به جلو حرکت میکنه و عنصر رو اضافه میکنه
زیر مفصل توضیح دادم یحتمل متوجه بشی

طبق توضیحات کتاب ها صف حلقوی شرط خالی بودن صف front=rear هست
در ابتدا پس هر دو اشاره گر به خانه ۱ اشاره میکنن (فرض که ۳ خانه داره صف و به ترتیب از ۱ تا ۳ نامگذاری میکنیم )

۱- با اجرای add اول اشاره گر rear توی خانه دوم عنصر رو اضافه میکنه ( توی صف حلقوی برای اینکه بشه تفاوت بین پر و خالی بودن رو تشخیص داد همیشه بین اشاره گر ابتدا و انتها یه خانه از صف رو خالی میگذاره) پس برای همین اشاره گر rear یه خونه به جلو حرکت میکنه و عنصر رو توی خانه ۲ میگذاره
۲- دستور add دوم عنصر بعدی رو توی خانه سوم میزاره ( حالا دیگه صف پره و اگه یه عنصر دیگه میخواست اضافه بشه امکان پذیر نبود و میگفت صف پره)
۳- دستور delete از ابتدای صف یه عنصر رو خارج میکنه که عنصر ابتدای صف الان تو خانه ۲ هست پس اشاره گر front که به خانه اول داره اشاره میکنه یکی به جلو حرکت میکنه و عنصر خانه دوم رو خارج میکنه ( نکته: اشاره گر front همیشه به خانه خالی قبل از عنصر اول اشاره میکنه و اشاره گر rear همیشه به عنصر آخر صف اشاره میکنه )
۴- دستور add یک عنصر رو به خانه شماره ۱ اضافه میکنه
۵- دستور add بعد اجرا نمیشه چون صف پر هست طبق این فرمول front = (rear +1) mode n و ازین دستور میگذره بدون اجرا شدن
۶- delete باعث خارج شدن عنصر از خانه ۳ میشه
۷ - delete باعث خارج شدن عنصر از خانه ۱ میشه
۸- add باعث اضافه شدن عنصر به خانه ۲ میشه
۹- add باعث اضافه شدن عنصر به خانه ۳ میشه
۱۰- delete باعث خارج شدن عنصر از خانه ۲ میشه
و انتها که فقط یک عنصر در صف هست و اونم توی خانه ۳ هست


فایل‌(های) پیوست شده

نقل قول این ارسال در یک پاسخ

ارسال:
  

alireza01 پاسخ داده:

RE: صف حلقوی

(۱۳ آبان ۱۳۹۵ ۰۸:۵۸ ب.ظ)delete4all نوشته شده توسط:  طبق توضیحات کتاب ها صف حلقوی شرط خالی بودن صف front=rear هست
در ابتدا پس هر دو اشاره گر به خانه ۱ اشاره میکنن (فرض که ۳ خانه داره صف و به ترتیب از ۱ تا ۳ نامگذاری میکنیم )

۱- با اجرای add اول اشاره گر rear توی خانه دوم عنصر رو اضافه میکنه ( توی صف حلقوی برای اینکه بشه تفاوت بین پر و خالی بودن رو تشخیص داد همیشه بین اشاره گر ابتدا و انتها یه خانه از صف رو خالی میگذاره) پس برای همین اشاره گر rear یه خونه به جلو حرکت میکنه و عنصر رو توی خانه ۲ میگذاره
۲- دستور add دوم عنصر بعدی رو توی خانه سوم میزاره ( حالا دیگه صف پره و اگه یه عنصر دیگه میخواست اضافه بشه امکان پذیر نبود و میگفت صف پره)
۳- دستور delete از ابتدای صف یه عنصر رو خارج میکنه که عنصر ابتدای صف الان تو خانه ۲ هست پس اشاره گر front که به خانه اول داره اشاره میکنه یکی به جلو حرکت میکنه و عنصر خانه دوم رو خارج میکنه ( نکته: اشاره گر front همیشه به خانه خالی قبل از عنصر اول اشاره میکنه و اشاره گر rear همیشه به عنصر آخر صف اشاره میکنه )
۴- دستور add یک عنصر رو به خانه شماره ۱ اضافه میکنه
۵- دستور add بعد اجرا نمیشه چون صف پر هست طبق این فرمول front = (rear +1) mode n و ازین دستور میگذره بدون اجرا شدن
۶- delete باعث خارج شدن عنصر از خانه ۳ میشه
۷ - delete باعث خارج شدن عنصر از خانه ۱ میشه
۸- add باعث اضافه شدن عنصر به خانه ۲ میشه
۹- add باعث اضافه شدن عنصر به خانه ۳ میشه
۱۰- delete باعث خارج شدن عنصر از خانه ۲ میشه
و انتها که فقط یک عنصر در صف هست و اونم توی خانه ۳ هست

ممنون از پاسخ خوبتون ، اما با توجه به توضیحات شما در نهایت توی آرایه عدد ۲ نمیمونه ؟
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

ارسال:
  

delete4all پاسخ داده:

RE: صف حلقوی

نقل قول: ممنون از پاسخ خوبتون ، اما با توجه به توضیحات شما در نهایت توی آرایه عدد ۲ نمیمونه ؟

بله اگه عدد رو بخوای عدد ۲ میمونه و توی خانه شماره ۳ هست
ااا چه جالب الان دقت کردم سوال تست رو باز نگاه کردم و متوجه شدم که مجموع اعداد باقی مونده توی آرایه رو خواسته که میشه ۲ و گزینه ۲ میشه
جواب بالا رو هم اصلاح کردمBig Grin
من فکر کردم که تعداد باقی مونده عناصر در آرایه رو خواسته
ببخشید.Blush
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

ارسال:
  

alireza01 پاسخ داده:

RE: صف حلقوی

(۱۴ آبان ۱۳۹۵ ۱۲:۲۵ ق.ظ)delete4all نوشته شده توسط:  
نقل قول: ممنون از پاسخ خوبتون ، اما با توجه به توضیحات شما در نهایت توی آرایه عدد ۲ نمیمونه ؟

بله اگه عدد رو بخوای عدد ۲ میمونه و توی خانه شماره ۳ هست
ااا چه جالب الان دقت کردم سوال تست رو باز نگاه کردم و متوجه شدم که مجموع اعداد باقی مونده توی آرایه رو خواسته که میشه ۲ و گزینه ۲ میشه
جواب بالا رو هم اصلاح کردمBig Grin
من فکر کردم که تعداد باقی مونده عناصر در آرایه رو خواسته
ببخشید.Blush
به این ریزه کاری ها دقت کن ، ممکنه نتیجه زحمتت رو به باد بده Undecided

تشکر Heart
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

majidvatanparast پاسخ داده:

RE: صف حلقوی

سلام
اگر x را به صورت x[0..2] تعریف کنیم ، مقدار دهی اولیه به صورت F=R=0 خواهد بود .
اگر ۲ عنصر اولی را اضافه کنیم F=0 و R=2 خواهد شد ، و اگر یکی حذف کنیم ( طبق ترتیب حذف و اضافه سوال ) ، F=1 و R=2 خواهد شد .
و اگر یه عنصر هم اضافه کنیم F=1 و R=0 خواهد شد و حالا اگر عنصر بعدی رو اضافه کنیم با پیغام صف پر است مواجه خواهیم شد طبق فرمول F=(R+1) % N که در این لحظه دو عنصر با مقادیر ۲ ، ۲ در خانه های با اندیس ۰ و ۲ است که مجموع اینها میشه ۴ و گزینه ۴ میشه .

که دوستمون delete4all بعد از این که صف پر میشه یکی از عناصر و حذف میکنه و کار و ادامه میده اگه اینطوری باشه در آخر ، عنصر با مقدار ۲ میمونه که جواب ۲ میشه !

یعنی من غلط حل کردم و شما درست حل کردید ! ، اگه به ترتیب درج و حذف سوال باشه که نباید موقعی که صف پر شد دیگه ادامه داد و مجموع عناصر میشه ۴ و گزینه ۴ درسته اگه غیر اینه خوشحال میشم راهنمایی کنید Heart .
نقل قول این ارسال در یک پاسخ

ارسال:
  

delete4all پاسخ داده:

RE: صف حلقوی

(۱۴ آبان ۱۳۹۵ ۰۳:۲۷ ب.ظ)majidvatanparast نوشته شده توسط:  سلام
اگر x را به صورت x[0..2] تعریف کنیم ، مقدار دهی اولیه به صورت F=R=0 خواهد بود .
اگر ۲ عنصر اولی را اضافه کنیم F=0 و R=2 خواهد شد ، و اگر یکی حذف کنیم ( طبق ترتیب حذف و اضافه سوال ) ، F=1 و R=2 خواهد شد .
و اگر یه عنصر هم اضافه کنیم F=1 و R=0 خواهد شد و حالا اگر عنصر بعدی رو اضافه کنیم با پیغام صف پر است مواجه خواهیم شد طبق فرمول F=(R+1) % N که در این لحظه دو عنصر با مقادیر ۲ ، ۲ در خانه های با اندیس ۰ و ۲ است که مجموع اینها میشه ۴ و گزینه ۴ میشه .

که دوستمون delete4all بعد از این که صف پر میشه یکی از عناصر و حذف میکنه و کار و ادامه میده اگه اینطوری باشه در آخر ، عنصر با مقدار ۲ میمونه که جواب ۲ میشه !

یعنی من غلط حل کردم و شما درست حل کردید ! ، اگه به ترتیب درج و حذف سوال باشه که نباید موقعی که صف پر شد دیگه ادامه داد و مجموع عناصر میشه ۴ و گزینه ۴ درسته اگه غیر اینه خوشحال میشم راهنمایی کنید Heart .

سلام
قاعدتا درج و حذف به ترتیب گفته شده هست اما یه نکته اینه که چرا شما وقتی الگوریتم به پر شدن صف رسید برنامه رو خاتمه میدید!؟
بعد از اینکه به درج عنصر بعد رسید، صف ابتدا چک میکنه که آیا جا داره یا نه و میبینه صف پره و جا نداره پس از درج عنصر جدید صرف نظر میکنه و به مرحله بعدی میره که حذف عنصر هست و ادامه
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

ارسال:
  

majidvatanparast پاسخ داده:

RE: صف حلقوی

(۱۵ آبان ۱۳۹۵ ۱۲:۰۰ ق.ظ)delete4all نوشته شده توسط:  
(14 آبان ۱۳۹۵ ۰۳:۲۷ ب.ظ)majidvatanparast نوشته شده توسط:  سلام
اگر x را به صورت x[0..2] تعریف کنیم ، مقدار دهی اولیه به صورت F=R=0 خواهد بود .
اگر ۲ عنصر اولی را اضافه کنیم F=0 و R=2 خواهد شد ، و اگر یکی حذف کنیم ( طبق ترتیب حذف و اضافه سوال ) ، F=1 و R=2 خواهد شد .
و اگر یه عنصر هم اضافه کنیم F=1 و R=0 خواهد شد و حالا اگر عنصر بعدی رو اضافه کنیم با پیغام صف پر است مواجه خواهیم شد طبق فرمول F=(R+1) % N که در این لحظه دو عنصر با مقادیر ۲ ، ۲ در خانه های با اندیس ۰ و ۲ است که مجموع اینها میشه ۴ و گزینه ۴ میشه .

که دوستمون delete4all بعد از این که صف پر میشه یکی از عناصر و حذف میکنه و کار و ادامه میده اگه اینطوری باشه در آخر ، عنصر با مقدار ۲ میمونه که جواب ۲ میشه !

یعنی من غلط حل کردم و شما درست حل کردید ! ، اگه به ترتیب درج و حذف سوال باشه که نباید موقعی که صف پر شد دیگه ادامه داد و مجموع عناصر میشه ۴ و گزینه ۴ درسته اگه غیر اینه خوشحال میشم راهنمایی کنید Heart .

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


من فک میکردم بعد از اینکه صف پر شد و با توجه به ترتیب حذف و اضافه سوال بعد از پرشدن عمل درج صورت میگیرد دیگه نمیشه ادامه داد ! البته هنوز هم مرددم !
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

ارسال:
  

alireza01 پاسخ داده:

RE: صف حلقوی

(۱۶ آبان ۱۳۹۵ ۰۸:۴۲ ب.ظ)majidvatanparast نوشته شده توسط:  من فک میکردم بعد از اینکه صف پر شد و با توجه به ترتیب حذف و اضافه سوال بعد از پرشدن عمل درج صورت میگیرد دیگه نمیشه ادامه داد ! البته هنوز هم مرددم !

دوست عزیز بعد از اینکه به مرحله ای رسیدیم که صف پره و ما قصد اضافه کردن به اون صف پر رو داریم ، حل سوال متوقف نمیشه بلکه فقط پیامی داریم مبنی بر اینکه صف ما پره و این دستور قابل اجرا نیست ( متوقف نمیشه ) ، و دستورات بعدی رو به ترتیب سوال اجرا میکنیم .
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  اندازه زمان شیار یابی در الگوریتم های حلقوی مثل c-look و c-scan hoomanab ۷ ۳,۸۱۹ ۲۳ بهمن ۱۳۹۲ ۰۱:۴۳ ق.ظ
آخرین ارسال: hosshah
  پیدا کردن کوچکترین عنصر در یک آرایه مرتب حلقوی nazanin_sh ۳ ۳,۱۰۸ ۱۱ بهمن ۱۳۹۲ ۰۱:۰۵ ق.ظ
آخرین ارسال: hosshah
  حذف عناصر لیست حلقوی تا n بار hoomanab ۸ ۴,۶۵۹ ۲۴ دى ۱۳۹۲ ۱۰:۴۲ ب.ظ
آخرین ارسال: mhma_1367
  خروجی لیست حلقوی زیر چیست؟ ppositiveenergy ۱ ۱,۷۷۸ ۱۵ آذر ۱۳۹۲ ۰۵:۳۰ ب.ظ
آخرین ارسال: Amoojan
  سوال (لیست پیوندی حلقوی) دولتی فناوری اطلاعات سال ۸۸ netsupport ۵ ۲,۳۸۷ ۱۷ فروردین ۱۳۹۱ ۰۳:۳۵ ب.ظ
آخرین ارسال: Aurora
  سوال (لیست پیوندی حلقوی) دولتی فناوری اطلاعات سال ۸۸ netsupport ۵ ۲,۷۰۲ ۱۷ فروردین ۱۳۹۱ ۰۳:۳۵ ب.ظ
آخرین ارسال: Aurora

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close