C++怎么定义堆栈

是数据结构的作业!要自己定义... 是数据结构的作业!要自己定义 展开
 我来答
吉祥二进制
高粉答主

2015-05-22 · 科技改变生活,生活改变科技。
吉祥二进制
采纳数:33926 获赞数:84576

向TA提问 私信TA
展开全部

堆空间一般有操作系统的堆管理器来处理,栈空间一般是应用程序自动回收管理的,以Windows为例,每一个应用程序默认的堆和栈空间大小都为1M。用户可以使用如下预处理命令指示链接器设置堆或者栈空间的大小。

#pragma comment(linker, "/STACK:1024000000,1024000000")

/STACK:[保留虚拟内存],[提交虚拟内存]  ,这里的大小都是字节。所以上面的1024000000是字节数。

量子002
2012-03-23 · TA获得超过4212个赞
知道大有可为答主
回答量:4082
采纳率:66%
帮助的人:904万
展开全部
看你用什么开发环境了,一般都有现成的类可以使用,TC,MFC,STL都有,一般不用自己设计,除非你是做数据结构作业题,那必须自己做
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zwxdlut
2012-03-23
知道答主
回答量:5
采纳率:0%
帮助的人:8020
展开全部
class CStack
{
public:
CStack(int len)
{
m_nLength = len;
m_nTop = 0;
m_pData = new int[len];
if (NULL == m_pData)
cout<<"Creating Stack Failure!"<<endl;
}
~CStack()
{
if (NULL != m_pData)
{
delete []m_pData;
m_pData = NULL;
}
}
bool Push(int data)
{
if (m_nTop == m_nLength)
{
cout<<"Stack Overflow!"<<endl;
reutrn false;
}
m_pData[m_nTop++] = data;
return true;
}
bool Pop(int data)
{
if (0 == m_nTop)
{
cout<<"Stack underflow!"<<endl;
return false;
}
data = m_pData[--m_nTop];
return true;
}
priviate:
int m_nLength;
int m_nTop;
int * m_pData;

};
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jyj660703
2012-03-23
知道答主
回答量:39
采纳率:0%
帮助的人:9.6万
展开全部
efgvarsdjtsykdufl
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式