| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 588 人关注过本帖
标题:[求助]用对象实现链表!
只看楼主 加入收藏
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
 问题点数:0 回复次数:3 
[求助]用对象实现链表!
class list{
int x;
list *next;
public:
list();
~list();
...
};

...
list::~list()
{
if(next) delete next;//请问这句话什么意思啊?怎么实现的呢?
}
..
搜索更多相关主题的帖子: 链表 对象 
2006-02-27 22:07
DarkHero
Rank: 1
等 级:新手上路
威 望:2
帖 子:191
专家分:0
注 册:2006-1-14
收藏
得分:0 
因为next是个指向list对象的指针,如果它指向某个list对象,那么它的值就是那个list对象的地址,不可能为0,所以相当于true了;如果该指针被删除了(确切地说应该是它的值被删除吧),比如delete next,那么系统将释放它指向的list对象的空间,并把该指针的值设为0,所以相当于 false了。

for( ; me.alive() ; ) { 淡泊名利,志存高远 } //Forever
2006-02-28 18:07
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 

哦 谢谢哈。
能不能再帮我解释一下这个程序

list::list()
{
next=NULL;
}
list::~list()
{
if (next) delete next;
}
void list::add(int a)
{
list *p=new list;
p->x=a;
p->next=next;
next=p;
}
void list::print()
{
for (list*p=next;p!=NULL;p=p->next)//这里next怎么取得头指针的呢?
cout<<p->x<<endl;
}

int main()
{
list q;
q.add(3);
q.add(-5);
...
q.print();
}


天行健,君子以自强不息!!QQ:68660681
2006-02-28 22:22
DarkHero
Rank: 1
等 级:新手上路
威 望:2
帖 子:191
专家分:0
注 册:2006-1-14
收藏
得分:0 
这里的next就相当于头指针啊,
void list::add(int a)
{
list *p=new list;
p->x=a;
p->next=next;
next=p;
}
你看,每当add(int)一个数:先创建一个新节点,然后让它指向next,然后再让next指向它。
这里跟栈似的,后进(先出)。

for( ; me.alive() ; ) { 淡泊名利,志存高远 } //Forever
2006-03-01 21:05
快速回复:[求助]用对象实现链表!
数据加载中...
 
   



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

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