| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 603 人关注过本帖
标题:循环链表 无法析构的问题
只看楼主 加入收藏
wghost
Rank: 2
等 级:论坛游民
帖 子:47
专家分:31
注 册:2009-6-6
结帖率:37.5%
收藏
已结贴  问题点数:20 回复次数:5 
循环链表 无法析构的问题
#include<iostream>
class ListEntry                                       //链表的结点
{
 private:
    double coef;
    int expn;
    ListEntry* preventry;
    ListEntry* nextentry;
 public:
    ListEntry(double a_coef=0,int a_expn=0);
    ~ListEntry(){};
    friend class List;
};
 ListEntry::ListEntry(double a_coef,int a_expn)
{   
    coef=a_coef;
    expn=a_expn;
    preventry=0;
    nextentry=0;
}
class List
{
private:
    ListEntry* head;
    int length;
public:
    List();
    ~List(){};
    void Delete(int i);
    void InsFirst(ListEntry* q);

};

List::List()
{
    head=new ListEntry;
    head->preventry=head->nextentry=head;   
    length=0;

}

void List::InsFirst(ListEntry* q)
{
   q->preventry=head;
   q->nextentry=head->nextentry;
   head->nextentry->preventry=q;
   head->nextentry=q;
   length++;

  return;
}

void List::Delete(int i)
{
    if(i>0 && i<=length)
    {
        ListEntry* p=head->nextentry;
        while( --i)
        {
            p=p->nextentry;
        }
         p->preventry->nextentry=p->nextentry;
         p->nextentry->preventry=p->preventry;
         p=0;
         delete p;
         length--;

    }
    else
        std::cerr<<"there is a error!"<<std::endl;
}
这是一个简单的循环链表的程序,谁能为我解释一下为什么只有加上红色部分才能正常运行呢???


[ 本帖最后由 wghost 于 2010-3-29 16:15 编辑 ]
搜索更多相关主题的帖子: 链表 
2010-03-21 15:56
秀痘魔导士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:250
专家分:1150
注 册:2009-12-23
收藏
得分:20 
if (lastentry)
    delete lastentry;
2010-03-24 17:15
wghost
Rank: 2
等 级:论坛游民
帖 子:47
专家分:31
注 册:2009-6-6
收藏
得分:0 

  还是解决不了啊!
2010-03-24 17:25
秀痘魔导士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:250
专家分:1150
注 册:2009-12-23
收藏
得分:0 
只有一个节点情况下,lastentry->preventry未初始化,你检查一下
2010-03-24 17:36
秀痘魔导士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:250
专家分:1150
注 册:2009-12-23
收藏
得分:0 
        if (lastentry->preventry != NULL)
            lastentry->preventry->nextentry=head->nextentry;
2010-03-24 17:37
wghost
Rank: 2
等 级:论坛游民
帖 子:47
专家分:31
注 册:2009-6-6
收藏
得分:0 
怎么没人来帮忙啊!!
2010-03-25 12:02
快速回复:循环链表 无法析构的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013523 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved