۰
subtitle
ارسال: #۱
  
صف حلقوی
سلام ، دوستان من یکم تو مفهوم درج و حذف از صف پیوندی حلقوی زمانی که به عنوان مثال ( مکان اول و سوم از یه آرایه ۳ عضوی خالیه الان درج از کجا شروع میشه ؟ ) مشکل دارم این سوالم هست که فک میکنم گزینه ۲ بشه . اگه ممکنه یه مقدار توضیح بدید .
۱
ارسال: #۲
  
RE: صف حلقوی
(۱۳ آبان ۱۳۹۵ ۰۶:۲۱ ب.ظ)alireza01 نوشته شده توسط: سلام ، دوستان من یکم تو مفهوم درج و حذف از صف پیوندی حلقوی زمانی که به عنوان مثال ( مکان اول و سوم از یه آرایه ۳ عضوی خالیه الان درج از کجا شروع میشه ؟ ) مشکل دارم این سوالم هست که فک میکنم گزینه ۳ بشه . اگه ممکنه یه مقدار توضیح بدید .
سلام
گزینه صحیح گزینه ۲ میشه و صف ۱ عنصر توش باقی میمونه بعد از اجرای ترتیب داده شده
و زمانی که عنصر اول و سوم خالی هست درج در خانه سوم انجام میشه چون خانه دوم پر هست و برای درج عنصر بعد یه خونه به جلو حرکت میکنه و عنصر رو اضافه میکنه
زیر مفصل توضیح دادم یحتمل متوجه بشی
طبق توضیحات کتاب ها صف حلقوی شرط خالی بودن صف front=rear هست
در ابتدا پس هر دو اشاره گر به خانه ۱ اشاره میکنن (فرض که ۳ خانه داره صف و به ترتیب از ۱ تا ۳ نامگذاری میکنیم )
۱- با اجرای add اول اشاره گر rear توی خانه دوم عنصر رو اضافه میکنه ( توی صف حلقوی برای اینکه بشه تفاوت بین پر و خالی بودن رو تشخیص داد همیشه بین اشاره گر ابتدا و انتها یه خانه از صف رو خالی میگذاره) پس برای همین اشاره گر rear یه خونه به جلو حرکت میکنه و عنصر رو توی خانه ۲ میگذاره
۲- دستور add دوم عنصر بعدی رو توی خانه سوم میزاره ( حالا دیگه صف پره و اگه یه عنصر دیگه میخواست اضافه بشه امکان پذیر نبود و میگفت صف پره)
۳- دستور delete از ابتدای صف یه عنصر رو خارج میکنه که عنصر ابتدای صف الان تو خانه ۲ هست پس اشاره گر front که به خانه اول داره اشاره میکنه یکی به جلو حرکت میکنه و عنصر خانه دوم رو خارج میکنه ( نکته: اشاره گر front همیشه به خانه خالی قبل از عنصر اول اشاره میکنه و اشاره گر rear همیشه به عنصر آخر صف اشاره میکنه )
۴- دستور add یک عنصر رو به خانه شماره ۱ اضافه میکنه
۵- دستور add بعد اجرا نمیشه چون صف پر هست طبق این فرمول front = (rear +1) mode n و ازین دستور میگذره بدون اجرا شدن
۶- delete باعث خارج شدن عنصر از خانه ۳ میشه
۷ - delete باعث خارج شدن عنصر از خانه ۱ میشه
۸- add باعث اضافه شدن عنصر به خانه ۲ میشه
۹- add باعث اضافه شدن عنصر به خانه ۳ میشه
۱۰- delete باعث خارج شدن عنصر از خانه ۲ میشه
و انتها که فقط یک عنصر در صف هست و اونم توی خانه ۳ هست
ارسال: #۳
  
RE: صف حلقوی
(۱۳ آبان ۱۳۹۵ ۰۸:۵۸ ب.ظ)delete4all نوشته شده توسط: طبق توضیحات کتاب ها صف حلقوی شرط خالی بودن صف front=rear هست
در ابتدا پس هر دو اشاره گر به خانه ۱ اشاره میکنن (فرض که ۳ خانه داره صف و به ترتیب از ۱ تا ۳ نامگذاری میکنیم )
۱- با اجرای add اول اشاره گر rear توی خانه دوم عنصر رو اضافه میکنه ( توی صف حلقوی برای اینکه بشه تفاوت بین پر و خالی بودن رو تشخیص داد همیشه بین اشاره گر ابتدا و انتها یه خانه از صف رو خالی میگذاره) پس برای همین اشاره گر rear یه خونه به جلو حرکت میکنه و عنصر رو توی خانه ۲ میگذاره
۲- دستور add دوم عنصر بعدی رو توی خانه سوم میزاره ( حالا دیگه صف پره و اگه یه عنصر دیگه میخواست اضافه بشه امکان پذیر نبود و میگفت صف پره)
۳- دستور delete از ابتدای صف یه عنصر رو خارج میکنه که عنصر ابتدای صف الان تو خانه ۲ هست پس اشاره گر front که به خانه اول داره اشاره میکنه یکی به جلو حرکت میکنه و عنصر خانه دوم رو خارج میکنه ( نکته: اشاره گر front همیشه به خانه خالی قبل از عنصر اول اشاره میکنه و اشاره گر rear همیشه به عنصر آخر صف اشاره میکنه )
۴- دستور add یک عنصر رو به خانه شماره ۱ اضافه میکنه
۵- دستور add بعد اجرا نمیشه چون صف پر هست طبق این فرمول front = (rear +1) mode n و ازین دستور میگذره بدون اجرا شدن
۶- delete باعث خارج شدن عنصر از خانه ۳ میشه
۷ - delete باعث خارج شدن عنصر از خانه ۱ میشه
۸- add باعث اضافه شدن عنصر به خانه ۲ میشه
۹- add باعث اضافه شدن عنصر به خانه ۳ میشه
۱۰- delete باعث خارج شدن عنصر از خانه ۲ میشه
و انتها که فقط یک عنصر در صف هست و اونم توی خانه ۳ هست
ممنون از پاسخ خوبتون ، اما با توجه به توضیحات شما در نهایت توی آرایه عدد ۲ نمیمونه ؟
ارسال: #۴
  
RE: صف حلقوی
نقل قول: ممنون از پاسخ خوبتون ، اما با توجه به توضیحات شما در نهایت توی آرایه عدد ۲ نمیمونه ؟
بله اگه عدد رو بخوای عدد ۲ میمونه و توی خانه شماره ۳ هست
ااا چه جالب الان دقت کردم سوال تست رو باز نگاه کردم و متوجه شدم که مجموع اعداد باقی مونده توی آرایه رو خواسته که میشه ۲ و گزینه ۲ میشه
جواب بالا رو هم اصلاح کردم
من فکر کردم که تعداد باقی مونده عناصر در آرایه رو خواسته
ببخشید.
ارسال: #۵
  
RE: صف حلقوی
(۱۴ آبان ۱۳۹۵ ۱۲:۲۵ ق.ظ)delete4all نوشته شده توسط:به این ریزه کاری ها دقت کن ، ممکنه نتیجه زحمتت رو به باد بدهنقل قول: ممنون از پاسخ خوبتون ، اما با توجه به توضیحات شما در نهایت توی آرایه عدد ۲ نمیمونه ؟
بله اگه عدد رو بخوای عدد ۲ میمونه و توی خانه شماره ۳ هست
ااا چه جالب الان دقت کردم سوال تست رو باز نگاه کردم و متوجه شدم که مجموع اعداد باقی مونده توی آرایه رو خواسته که میشه ۲ و گزینه ۲ میشه
جواب بالا رو هم اصلاح کردم
من فکر کردم که تعداد باقی مونده عناصر در آرایه رو خواسته
ببخشید.
تشکر
۰
ارسال: #۶
  
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 بعد از این که صف پر میشه یکی از عناصر و حذف میکنه و کار و ادامه میده اگه اینطوری باشه در آخر ، عنصر با مقدار ۲ میمونه که جواب ۲ میشه !
یعنی من غلط حل کردم و شما درست حل کردید ! ، اگه به ترتیب درج و حذف سوال باشه که نباید موقعی که صف پر شد دیگه ادامه داد و مجموع عناصر میشه ۴ و گزینه ۴ درسته اگه غیر اینه خوشحال میشم راهنمایی کنید .
اگر x را به صورت x[0..2] تعریف کنیم ، مقدار دهی اولیه به صورت F=R=0 خواهد بود .
اگر ۲ عنصر اولی را اضافه کنیم F=0 و R=2 خواهد شد ، و اگر یکی حذف کنیم ( طبق ترتیب حذف و اضافه سوال ) ، F=1 و R=2 خواهد شد .
و اگر یه عنصر هم اضافه کنیم F=1 و R=0 خواهد شد و حالا اگر عنصر بعدی رو اضافه کنیم با پیغام صف پر است مواجه خواهیم شد طبق فرمول F=(R+1) % N که در این لحظه دو عنصر با مقادیر ۲ ، ۲ در خانه های با اندیس ۰ و ۲ است که مجموع اینها میشه ۴ و گزینه ۴ میشه .
که دوستمون 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 بعد از این که صف پر میشه یکی از عناصر و حذف میکنه و کار و ادامه میده اگه اینطوری باشه در آخر ، عنصر با مقدار ۲ میمونه که جواب ۲ میشه !
یعنی من غلط حل کردم و شما درست حل کردید ! ، اگه به ترتیب درج و حذف سوال باشه که نباید موقعی که صف پر شد دیگه ادامه داد و مجموع عناصر میشه ۴ و گزینه ۴ درسته اگه غیر اینه خوشحال میشم راهنمایی کنید .
سلام
قاعدتا درج و حذف به ترتیب گفته شده هست اما یه نکته اینه که چرا شما وقتی الگوریتم به پر شدن صف رسید برنامه رو خاتمه میدید!؟
بعد از اینکه به درج عنصر بعد رسید، صف ابتدا چک میکنه که آیا جا داره یا نه و میبینه صف پره و جا نداره پس از درج عنصر جدید صرف نظر میکنه و به مرحله بعدی میره که حذف عنصر هست و ادامه
ارسال: #۸
  
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 بعد از این که صف پر میشه یکی از عناصر و حذف میکنه و کار و ادامه میده اگه اینطوری باشه در آخر ، عنصر با مقدار ۲ میمونه که جواب ۲ میشه !
یعنی من غلط حل کردم و شما درست حل کردید ! ، اگه به ترتیب درج و حذف سوال باشه که نباید موقعی که صف پر شد دیگه ادامه داد و مجموع عناصر میشه ۴ و گزینه ۴ درسته اگه غیر اینه خوشحال میشم راهنمایی کنید .
سلام
قاعدتا درج و حذف به ترتیب گفته شده هست اما یه نکته اینه که چرا شما وقتی الگوریتم به پر شدن صف رسید برنامه رو خاتمه میدید!؟
بعد از اینکه به درج عنصر بعد رسید، صف ابتدا چک میکنه که آیا جا داره یا نه و میبینه صف پره و جا نداره پس از درج عنصر جدید صرف نظر میکنه و به مرحله بعدی میره که حذف عنصر هست و ادامه
من فک میکردم بعد از اینکه صف پر شد و با توجه به ترتیب حذف و اضافه سوال بعد از پرشدن عمل درج صورت میگیرد دیگه نمیشه ادامه داد ! البته هنوز هم مرددم !
ارسال: #۹
  
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?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close