|
想通过代码理解josepus问题。
自定义了一个循环链表类,叫RecList:
class RecList
{
public:
Node* head;
Node* rear;
...
};
class Node
{
public:
Node* next;
int data;
...
};
测试的时候,用new生成Node类的对象数组:
ptrnodes = new Node[players];
还有RecList对象mylist: RecList mylist; //空链,尚没有结点
通过RecList::InsHead(Node*)方法(采用头插法),向RecList的对象插入各个node:
mylist.InsHead(&ptrnodes);
求解josephus问题过程中:
ptr1 = mylist.head;
...
delete ptr1;
源代码在gcc 3.2下编译。运行时提示segment fault。出错语句为delete ptr1;
疑问陈述:mylist的各结点都是Node对象,Node对象(数组)通过new操作产生,可是delete的时候却出错。请教在这样的背景下如何适当的释放内存。
多谢了先。
源代码详见附件 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|