一个c++链表的问题

作业里写了个链表实现堆栈类,但是在关闭空间的时候遇到了问题:
//-----------线性表的定义----------// class List //定义线性基类{ public: List(){}; ~List(){}; protected: int length;};

class D2list:public List {private: char str; D2list *next; D2list* Head; D2list* End;

public:

………………

}

然后我写了一个删除链表的操作,在D2list里:

void deletefunc() /*删除链表*/ { D2list* cword; D2list* dword; if(!Head) return; dword = NULL; for(cword=Head;cword!=NULL;cword=cword->next) { if(dword) delete dword; dword = cword;} if(dword) delete dword; Head= NULL; End = NULL; length = 0; }然后当我定义一个D2list B时,我输入B.deletefunc(),编译正确,但是运行的时候运行到这一步就卡死了

第1个回答  2014-04-15
D2list *next;
D2list* Head;
D2list* End;
这三个东西你都初始化没有?没初始化的话,他们的值不是NULL,而是一个内存中随机的值追问

有的,我在我的链表里存了值,然后执行那个删除操作才蹦出来那个的。。

这是我添加成员的函数:

c++ 链表,,求指导,程序崩溃,line:1044
1.链表的最后一个节点的next的值,是否设置为NULL了,如果没有设置,到了最后一个节点的时候,就会出现崩溃.2.你的链表中的每个节点的next值,是否都对了,如果有任一个节点的next没有指向有用的节点的话,就会访问不被允许访问的内存,导致崩溃.3.考虑下在进入循环的第一次是否就有问题,因为循环里,并没...

c++ MFC 里的链表问题(内详)
链表是一种数据结构,就像是一个一个的珠子串起来的链子,每个珠子就是一个结构体变量(当然这是C语言中的说法,要是是C++的话,每个珠子就是一个对象了),这种数据结构可以很方便地的访问每个元素,一般它是与数组相对的,数组是串行的,按照索引来访问元素,而链表是靠结构体中存储的下一个元素的...

c++链表问题
答:链表的结构就是图中所示了,r就是S的指针域指向的下一个节点。提示:r的指针域不为NULL,不能作为链表的尾节点哦,要给r->link=NULL;

c++ 链表,,求指导,程序崩溃,line:1044
链表的最后一个节点的next的值,是否设置为NULL了,如果没有设置,到了最后一个节点的时候,就会出现崩溃.你的链表中的每个节点的next值,是否都对了,如果有任一个节点的next没有指向有用的节点的话,就会访问不被允许访问的内存,导致崩溃.考虑下在进入循环的第一次是否就有问题,因为循环里,并没有判断p...

c++链表栈问题
1.建立抽象模型,说起来这件事得追溯到C++本身的结构上:从广义上看,类是一个数据操作集合体,即使数据结构也不外乎如是。那么我们必须知道栈需要什么——这是一切问题的起点。数据结构是数据模型的实现,围绕数据为中心,操作为主要手段的语义模型。真正具体化到C++的类中,我们就是要确定储存结构(...

C++编了一个简单的链表节点模版,运行时显示error lnk2019 无法解析的外 ...
不要把头文件和实现文件分开,也就是说,你把所有代码都放在一个文件里面。不要把类的声明和定义放在h中,又把成员函数的实现放在cpp 中。全部都放在一起,叫cpp或者hpp 就好。visual studio 对模板的分离编译不是很好,就出现连接错误。参考资料:个人经验 ...

c++ 链表 删除各种情况节点问题。。。求教。。在线等。。。
一、结尾节点无法删除的问题,你可以想象一个只有三个节点的链表,结尾节点的ID=findid,开始时,p指向第二个节点,然后执行到第一个if时,由于p->next->ID==findid,于是执行第二个if语句,但是此时p->next->next是等于NULL的,所以删除节点的代码没被执行。二、当只有一个结点时,因为一开始定义...

关于地址传送的一个问题(c++链表)
这里你有一个误区,这里的复制就是复制的意思,这里传的是引用,确实是把地址直接传给了函数,但是push_back(const T &e)中的const也就表示虽然传给了函数,但是函数没用权限去改变e的值。既然不改变,只是复制,为什么又要传地址呢?这是因为在链表中,元素T的类型是不定的,如果直接使用一般的形参...

C++怎么确定一个链表是否是空的?
1 带头节点。对于带头节点的链表,存在有不变的头结点head,这个节点并不保存任何数据,仅提供链表起始的一个标识。对于此类链表,判断为空的条件为head->next==NULL。当head的next值为NULL,这时链表为空。2 不带头结点。不带头结点的情况,链表的起始节点是可能变化的,但无论如何变化,必须有一个...

以下是我编的一个C++ 单链表,为什么输出的结果是 一串 -842150451_百...
void LinkList::LinkInsert(int adata, int bdata){ LinkNode *p, *q, *s;s = (LinkNode*)new(LinkNode);q = (LinkNode*)new(LinkNode);p = (LinkNode*)new(LinkNode);bdata = s->data; \/\/这里写反了。。。 s->data=bdata p=head;

相似回答
大家正在搜