那边的薯片半价阿 2018-10-07 13:04 采纳率: 83.3%
浏览 1128

以循环链表解决狐狸逮兔子问题

#include<stdio.h>
#include<stdlib.h>

typedef int Elemtype;
typedef struct LNode
{
    Elemtype data;
    struct LNode *next;
}LNode,*LinkList;

void createlist(LinkList *head)
{
    int i;
    *head=(LinkList)malloc(sizeof(LNode));
    LinkList p,q;
    p=(*head)->next;
    for(i=0;i<10;i++)
    {
        q=(LinkList)malloc(sizeof(LNode));
        p->next=q;
        q->next=(*head);
    }
    q->next=(*head);

}
void initlist(LinkList head)
{
    LinkList p;
    p=head->next;
    do{
        p->data=1;
        p=p->next;
    }while(p->next!=head);
}
void overthroughlist(LinkList head)
{
    LinkList p;
    int i,j=1,q,n,u;
    p=head->next;
    //狐狸来了
    scanf("%d",&n);//进洞次数
    for(i=0;i<n;i++)
    {
            u=((1.0/2)*j*(j+1));
            u=u%10;
            for(q=1;q<u;q++)//确保十个洞循环进,j是相隔的山洞数
            {
                p=p->next;
            }
            p->data=0;
            j++;
            if(p->next==head)
            {
                p=p->next;
            }
    }
}
void outputlist(LinkList head)
{
    LinkList p;
    p=head->next;
   do{
    printf("%d",p->data);
   }while(p->next!=head);
}
int main()
{
    LinkList head;
    createlist(&head);
    initlist(head);
    overthroughlist(head);
    outputlist(head);
    return 0;
}

通过了编译但是没有输出,不清楚错哪了,求大神指教orz

循环链表的创建是参考的这位大神的代码
https://blog.csdn.net/you__know/article/details/8177628

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
    • ¥15 Vue3地图和异步函数使用
    • ¥15 C++ yoloV5改写遇到的问题
    • ¥20 win11修改中文用户名路径
    • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
    • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
    • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
    • ¥15 帮我写一个c++工程
    • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
    • ¥15 关于smbclient 库的使用