这是我编的约瑟夫环问题 可是为什么执行到delete p;这一句就会发生异常呢?
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/09/27 12:12:22
这是我编的约瑟夫环问题 可是为什么执行到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
#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
帮忙给你改了一下,程序现在完全满足题目要求,实现了约瑟夫环问题:
#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);
}
自己看看在什么地方改动了,请加分吧.
#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);
}
自己看看在什么地方改动了,请加分吧.
约瑟夫难题的约瑟夫指的是哪位约瑟夫?
橡胶弹簧为何会发生异常断裂情况?这是为什么呢?
C语言编的约瑟夫问题(猴子选大王)求大神看哪里错了
ACM约瑟夫环数学问题
约瑟夫环(Joseph)问题数据结构的实验.c++编程~
急求 约瑟夫C语言的问题
约瑟夫环问题,用C语言编写
为什么这一句不执行呢?语法是这样写的吗?
in the past year 我觉得是去年发生的事 到去年年尾今年年初已经结束了 可是为什么用现在完成时啊啊
追及问题公式怎样得来我知道追及问题的公式是速度差*追及时间=追及路程.可是这是怎样得出来的呢?我想知道原因,特别是为什么
原癌基因的主要功能是阻止细胞发生异常增殖 为什么
约瑟夫问题:n个骑士编号1,2,.,围坐圆桌旁找出最后留在圆桌旁的骑士编号(1)编