外拓xpp


私信TA

用户名:qzw123

访问量:513

签 名:

等  级
排  名 48020
经  验 265
参赛次数 1
文章发表 1
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

解题思路:
        分享一个链表
注意事项:

参考代码:

#include<stdio.h>
#include<stdlib.h>
struct node
{
 int no;
 struct node*next;
};
int main()
{
 int i,k;struct node*head,*p,*q;
 int n,m;
 while(scanf("%d%d",&n,&m)!=EOF)
 {
 head=(struct node*)malloc(sizeof(struct node));
 head->no=-1;
 head->next=head;
 for(i=n;i>0;i--)                              //生成循环链表
 {
  p=(struct node*)malloc(sizeof(struct node));
  p->next=head->next;p->no=i;head->next=p;
 }
 printf("\nThe original circle is :");
 while(p->next!=head)                        //找到表头节点 并跳过表头节点
  p=p->next;
 p->next=head->next;                        //节点删除操做   *p->30
 for(i=0;i<n-1;i++)
 {
  for(k=1;k<m;k++)
   p=p->next;
  q=p->next;                            //p的下一个节点是要出列的节点
  p->next=q->next;                   //循环链表跳过要出列的节点
 // printf("%3d",q->no);                 //输出q节点的编号
  free(q);                           //释放q节点
 }
    printf("\n%d",p->no);
 }
 printf("\n");
 return 0;
}

 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区