C++ 定义一个堆栈类 ,补充完整

#include“iostream.h”classStack{int*a;Intlen,top;public:Stack(intn);//初始化堆栈~Stack();//... #include “iostream.h”
class Stack
{int *a;
Int len,top;
public:
Stack( int n); //初始化堆栈
~Stack( ); //析构堆栈空间
Stack( const Stack& t); //拷贝构造函数
void push( int x); //将x压入堆栈
int pop( ); //将堆栈元素弹出返回
};
展开
 我来答
蝶翼的罪
推荐于2017-11-25 · 超过21用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:44.5万
展开全部
根据楼主的意思,是做一个数组的存储int的简单栈空间,代码如下,已经测试过了。
class Stack
{int *a;
int len,top;
public:
Stack( int n); //初始化堆栈
~Stack( ); //析构堆栈空间
Stack( const Stack& t); //拷贝构造函数
void push( int x); //将x压入堆栈
int pop( ); //将堆栈元素弹出返回
};

Stack::Stack(int n)
{
a=new int[n];
len=n;
top=0;
}
Stack::~Stack()
{
delete []a;
}

Stack::Stack(const Stack& t)
{
a=new int[t.len];
len=t.len;
top=t.top;
for(int i=0; i < len; i++)
a[i] = t.a[i];
}

void Stack::push(int x)
{
if(top == len )
{
cout<<"栈已满"<<endl;
return;
}
a[top++] = x;
}

int Stack::pop()
{
return a[--top];
}
迷茫de求知者
2012-04-18 · 超过12用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:44.4万
展开全部
之前正好写了一个,贴给你
class MyStack
{
private:
int* m_data;
int m_top;
public:
MyStack( int size );
~MyStack();
bool isEmpty();
void pop();
void push( const int& x );
int top() const;

};

MyStack::MyStack( int size = 20 )
{
m_data = new int[size];
m_top = 0;
}

MyStack::~MyStack()
{
delete []m_data;
}

void MyStack::pop()
{
if( m_top != 0 )
{
m_top--;
}
}

void MyStack::push( const int& x )
{
if( m_top<20 )
{
m_data[m_top++] = x;
}

// else
// MessageBox( NULL, L"已达到栈的上限", L"警告", MB_OK );
}

int MyStack::top() const
{
return m_data[m_top];
}

bool MyStack::isEmpty()/* hwt */
{
if(!m_top)
return true;
else
return false;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式