数据结构试验设计上老师提出了一个问题,关于线性结构的应用,约瑟夫环问题 小弟才疏学浅,

1个回答

  • #include

    struct list//建立一个结构体,包括每个人的编号,密码和下一级的指针

    {

    int id;

    struct list *next;

    };

    list* input(int n)//链表的初始化

    {

    list *p,*q,*l;

    int i,m;

    p=new list;

    l=new list;

    l->next=NULL;

    p=l;

    p->id=1;//第一个人的初始化

    for(i=2;iid=i;

    q->next=NULL;

    p->next=q;

    p=q;

    }

    p->next=l;//使表尾指向表头,成循环链表

    return p;

    }

    int main()

    {

    int num,m1,i;

    list *q,*p;

    printf("输入人数:");

    while(scanf("%d",&num)!=EOF)

    {

    printf("密码为:");

    scanf("%d",&m1);

    p=input(num);

    printf("最后一人序号为:");

    while(p->next!=p)

    {

    for(i=1;inext;

    }

    q->next=p->next;

    delete p;

    p=q;

    }

    printf("%4d",p->id);

    delete p;

    printf("n");

    }

    }