#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;
}
}
【c++程序】栈的基本用法
最新推荐文章于 2024-06-26 13:41:53 发布