您的位置:首页 > 编程语言 > C语言/C++

【c++程序】栈的基本用法

2016-06-06 18:55 316 查看
#include<iostream>
#include<string>
using namespace std;
typedef std::string T;

class stack
{
T a[5];
int cur;
public:
stack():cur(0){}

//数据入栈成为栈顶
void push(const T& d)/*throw(const char*)*/;

//栈顶数据出栈
T pop()/*throw(const char*)*/;

//取得栈顶数据
const T& top()const/* throw(const char *)*/;

//是否空栈
bool empty()const
{
return cur==0;
}

//是否已满
bool full()const
{
return cur==0;
}

//栈清空
void clear()
{
cur=0;
}

//栈中数据个数
int size()const;
};

void stack::push(const T& d)/*throw(const char *)*/
{
if(full()) throw "Has Been Full!";
a[cur++]=d;
}

T stack::pop()/*throw(const char *)*/
{
if(empty())throw"This is empty!";
return a[--cur];
}

const T& stack::top()const /*throw(const char *)*/
{
if(empty())throw"This is empty!";
return a[cur-1];
}

int main()
{
stack s;
try
{
s.push("zhaoqilu");
s.push("zhangzhuo");
s.push("zhuxiujing");
s.push("yanhongyi");
s.push("haoxinyu");
}
catch(const char* e)
{
cout<<"the error is "<<e<<endl;
}
while(!s.empty())
{
cout<<s.pop()<<endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: