赤名莉香_ 2022-07-04 11:22 采纳率: 33.3%
浏览 30
已结题

关于循环链表解决约瑟夫环

大家帮忙看一下,为什么我这个只要选第一个死就会出错误,选别的死就没事


#include<iostream>
#include<stdlib.h>
using namespace std;
typedef struct _node{
 int data;
 struct _node *next;
}Node;
void tailcreate(Node *L,int n)
{
 Node *p,*r;
 r=L;
 for(int i=1;i<=n;i++)
 {
  p=(Node *)malloc(sizeof(Node));
  p->data=i;
  
  r->next=p;
  r=p;
 }
 r->next=L->next;
 } 
 Node * Delete(Node *L,int num)
 {
  Node *p,*q;
 p=L;
  for(int i=1;;i++)
  {
   
   q=p;
   p=p->next;
   if(i==num)
   {
   if(p==L->next)  
    L->next=p->next;
    q->next=p->next;
    delete(p);
    break;
   }
   
  }
  return q;
}
void print(Node *head)
{
 
 Node *p;
 p=head;
    do
    {
     
     cout<<p->data<<' ';
     p=p->next;
    }while(p->next!=head->next);
}

  int main()
  {
   Node *head,*p;
   int n,num,m;
   cout<<"一共有几个人:";
   cin>>n; 
   m=n;
   head=(Node *)malloc(sizeof(Node));
   tailcreate(head,n);
   cout<<"第几个人死:";
   cin>>num;
   
  while(m--,m!=0)
  {
   p=Delete(head,num);head=p;
   print(head);
   cout<<endl;
   
   
    }  
    cout<<"存活编号";
    print(head);
    
     } 
  
 
  • 写回答

2条回答

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 系统已结题 7月12日
      • 已采纳回答 7月4日
      • 创建了问题 7月4日

      悬赏问题

      • ¥30 关于#网络安全#的问题:非对称加密验证
      • ¥20 关于线性代数里施密特正交化和QR分解的疑问
      • ¥15 matlab超类包含解析错误
      • ¥15 python拖拽文件问题
      • ¥15 执行import paddle代码出现错误如何解决?
      • ¥15 hisat2align exited with value 137
      • ¥15 寻找大学生合作开发软件(Delphi)
      • ¥30 AndroidBench&eMMC内存测试速度&Android
      • ¥15 W10 文件共享失败 怎么解决
      • ¥20 b站私信完整导出的方法