这是我编的约瑟夫环问题 可是为什么执行到delete p;这一句就会发生异常呢?#include using namespace std; typedef struct DNode { int data; struct DNode *next; }DNode; class Dlinklist{ DNode *dlist; public:void JGame(int e); }; v
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/30 01:55:17
![这是我编的约瑟夫环问题 可是为什么执行到delete p;这一句就会发生异常呢?#include using namespace std; typedef struct DNode { int data; struct DNode *next; }DNode; class Dlinklist{ DNode *dlist; public:void JGame(int e); }; v](/uploads/image/z/10728349-61-9.jpg?t=%E8%BF%99%E6%98%AF%E6%88%91%E7%BC%96%E7%9A%84%E7%BA%A6%E7%91%9F%E5%A4%AB%E7%8E%AF%E9%97%AE%E9%A2%98+%E5%8F%AF%E6%98%AF%E4%B8%BA%E4%BB%80%E4%B9%88%E6%89%A7%E8%A1%8C%E5%88%B0delete+p%3B%E8%BF%99%E4%B8%80%E5%8F%A5%E5%B0%B1%E4%BC%9A%E5%8F%91%E7%94%9F%E5%BC%82%E5%B8%B8%E5%91%A2%3F%23include+using+namespace+std%3B+typedef+struct+DNode+%7B+int+data%3B+struct+DNode+%2Anext%3B+%7DDNode%3B+class+Dlinklist%7B+DNode+%2Adlist%3B+public%3Avoid+JGame%28int+e%29%3B+%7D%3B+v)
这是我编的约瑟夫环问题 可是为什么执行到delete p;这一句就会发生异常呢?#include using namespace std; typedef struct DNode { int data; struct DNode *next; }DNode; class Dlinklist{ DNode *dlist; public:void JGame(int e); }; v
这是我编的约瑟夫环问题 可是为什么执行到delete p;这一句就会发生异常呢?
#include
using namespace std;
typedef struct DNode
{
int data;
struct DNode *next;
}DNode;
class Dlinklist{
DNode *dlist;
public:
void JGame(int e);
};
void Dlinklist::JGame(int e)
{
DNode *head,*rear;
int item;
int n=0;
dlist=new DNode;
//dlist->prior=NULL;
dlist->next=NULL;
head=dlist;
rear=dlist;
int flag=1;
while(flag){
coutitem;
if(item!=0)
{
dlist=new DNode;
dlist->data=item;
dlist->next=head;
rear->next=dlist;
rear=dlist;
n++;
}
else flag=0;
}
DNode *p;
p=head;
while(n)
{
for(int i=0;inext;
rear=p;
}
cout
这是我编的约瑟夫环问题 可是为什么执行到delete p;这一句就会发生异常呢?#include using namespace std; typedef struct DNode { int data; struct DNode *next; }DNode; class Dlinklist{ DNode *dlist; public:void JGame(int e); }; v
帮忙给你改了一下,程序现在完全满足题目要求,实现了约瑟夫环问题:
#include
using namespace std;
typedef struct DNode
{
int data;
struct DNode *next;
}DNode;
class Dlinklist{
public:
DNode *dlist;
void JGame(int e);
};
void Dlinklist::JGame(int e)
{
DNode *head,*rear;
int item;
int n=0;
dlist=new DNode;
dlist->next=dlist;//形成循环链表
head=dlist;
rear=dlist;
int flag=1;
while(flag){
coutitem;
if(item!=0)
{
dlist=new DNode;
dlist->data=item;
dlist->next=head->next;
rear->next=dlist; //在尾部插入
rear=dlist;
n++;
}
else flag=0;
}
DNode *p,*q; //多附设一个指针
q=head;
while(n)
{
p=q;
for(int i=0;inext;
}
cout>e;//输入报数上限值
dlink.JGame(e);
}
自己看看在什么地方改动了,请加分吧.