امتیاز موضوع:
  • 2 رأی - میانگین امتیازات: 3.5
  • 1
  • 2
  • 3
  • 4
  • 5
ليست پيوندي چرخشي مربوط به حذف سرباز ها
نویسنده پیام
The.Ghost غایب
مدیر بازنشسته
*****

ارسال‌ها: 461
موضوع‌ها: 201
تاریخ عضویت: مهر ۱۳۸۸

تشکرها : 674
( 354 تشکر در 158 ارسال )
ارسال: #1
Rolleyes  ليست پيوندي چرخشي مربوط به حذف سرباز ها
ليست پيوندي چرخشي مربوط به حذف سرباز ها
این قضیه کاملا واقعی می باشد.
سربازان فرانسوی در جنگی در میان دشمن به دام می افتند.
تصمیم می گیرند که همه دور هم جمع شوند که تعداد آنها یک عددی می شود.
بعد یک عدد دلخواه داده می شود و از اول به تعداد اون عدد شمارش می شود و آن سربازی که به ان بیفتد حذف می شود این روند تا آخر ادامه دارد تا این که فقط یک سرباز باقی بماند سپس آن سرباز باید از میان دشمن حرکت کند و کمک خبر کند.

کد:
#include <iostream.h>
#include <conio.h>

struct node
{
  int no;
  node *link;
}*last=NULL;

void make_list(int x)
{
  node *temp;
  for(int i=1;i<=x;i++)
  {
    temp=new node;
    temp->no=i;
    if(last==NULL)
    {
      last=temp;
      temp->link=temp;
    }
    else
    {
      temp->link=last->link;
      last->link=temp;
      last=temp;
    }
  }
}

void del(int x)
{
  node *p,*q;
  int i;
  p=last->link;
  while(last->link!=last)
  {
    for(i=1;i<x;i++)
    {
      q=p;
      p=p->link;
    }
    q->link=p->link;
    if(p==last)  last=q;
    delete p;
    p=q->link;
  }
  cout<<last->no;
}

main()
{
  clrscr();
  make_list(10);
  del(4);
}

Assembly Language 039

۰۶-اردیبهشت-۱۳۹۱, ۱۳:۴۶:۳۳
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Rolleyes طراحي پشته با ليست پيوندي The.Ghost 0 2,227 ۰۶-اردیبهشت-۱۳۹۱, ۱۳:۴۴:۵۳
آخرین ارسال: The.Ghost

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS