标题:约瑟夫环链表实现,还是无法输出,怎么办。。
取消只看楼主
好烦、
Rank: 2
等 级:论坛游民
帖 子:78
专家分:72
注 册:2020-10-10
结帖率:87.5%
已结贴  问题点数:20 回复次数:0 
约瑟夫环链表实现,还是无法输出,怎么办。。
有n个人围成一圈,顺序从1开始排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。要求用循环链表实现。
程序代码:
#include<stdio.h>
#include<stdlib.h>
typedef struct ptr//链表结构 
{
    int a;
    struct ptr *next;
}ptr;

int main ()
{
    int n,i;
    ptr head;
    ptr *t=&head;
    scanf("%d",&n);
    for(i=0;i<n;i++)//初始化链表作编号,依次1,2,3,4... 
    {
        ptr *circle_node=(ptr*)malloc(sizeof(ptr));
        t->next=circle_node;
        t=circle_node;
        t->a=i+1;
    }
    ptr *node=&head;//把尾节点连接到头结点 
    ptr *front;
    t->next=node->next;
    free(node);
    while(t->next!=0)//链表长度大于一个元素时 
    {
        for(i=0;i<3;i++)//报数三次 
        {
            front=t;
            t=t->next;
        }
        node=t;
        front->next=t->next;
        t=front;
        free(node);
    }
    printf("%d",t->a);
    return 0;
}


搜索更多相关主题的帖子: next head 链表 int node 
2021-01-11 19:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-504610-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014045 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved