| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 580 人关注过本帖
标题:如果有兴趣的,可以近来看看
只看楼主 加入收藏
linlin
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2006-3-14
收藏
 问题点数:0 回复次数:3 
如果有兴趣的,可以近来看看
#ifndef STACK_H
#define STACK_H
class Stack
{
struct Link
{
void * data;
Link * next;
Link(void * dat,Link* nxt);
~Link();
}* head;
public:
Stack();
~Stack();
void push(void * dat);
void * peek();
void *pop();
};
#endif //STACK4_H ///:~


#include "Stack4.h"
using namespace std;
Stack::Link::Link(void * dat,Link * nxt)
{
data=dat;
next=nxt;
}
Stack::Link::~Link(){}
Stack::Stack()
{
head=0;
}
void Stack::push(void * dat)
{
head=new Link(dat,head);
}
void * Stack::peek()
{
return head->data;
}
void * Stack::pop()
{
if(head==0)
return 0;
void * result =head->data;
Link* oldHead=head;//我觉得在这两处红色字处是多余的,可以省略,
head=head->next;//因为在这里可以直接让head直接指向head->next;
delete oldHead;
return result;
}
Stack::~Stack()
{
}
各位有什么见解,能谈谈吗?
搜索更多相关主题的帖子: 兴趣 
2006-04-05 21:32
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
收藏
得分:0 
红色的代码是为了释放pop出的数据所占的空间,不是多余的。
因为在这个stack里,每一个数据都是一个link结构体,在push的时候分配了空间,
数据被pop,所占用的空间也应当释放。否则,会造成内存泄漏。

成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2006-04-06 10:39
gototheworld
Rank: 1
等 级:新手上路
帖 子:218
专家分:0
注 册:2006-3-24
收藏
得分:0 

柳儿说的很好


路漫漫其修远兮 吾将上下而求索
2006-04-06 10:46
linlin
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2006-3-14
收藏
得分:0 

谢谢斑竹


woyaochengshuyidianle 我真的什么也不会
2006-04-06 10:47
快速回复:如果有兴趣的,可以近来看看
数据加载中...
 
   



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

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