#include "iostream"
using namespace std;
//typedef int DataType;
template <class DataType>
class Stack//栈类
{
private:
DataType *items;//栈数组
int stacksizs; //栈的实际大小
int top;//栈顶指针。
public:
//构造函数:1)分配数组函内存;2)把栈顶指针初始化为0.
Stack(int size) : stacksizs(size), top(0) {
items = new DataType[stacksizs];
}
~Stack() {
delete items;
items = nullptr;
}
bool isempty() const {//判断栈是否为空。
return top == 0;
}
bool isfull() const {
//判断栈是否已满
return top == stacksizs;
}
bool push(const DataType &item) {
//元素入栈
if (top < stacksizs) {
items[top++] = item;
return true;
}
return false;
}
bool pop(DataType &item) {
//元素出栈。
if (top > 0) {
item = items[--top];
return true;
}
return false;
}
};
int main(){
Stack <string> ss(5);//创建栈的对象,大小是5。
//元素入栈
ss.push("小红");ss.push("小绿");ss.push("小蓝");ss.push("小明");ss.push("小金");
//元素出栈
string item;
while(ss.isempty()==false){
ss.pop(item);cout<<"item="<<item<<endl;
}
}
输出:
item=小金
item=小明
item=小蓝
item=小绿
item=小红
发表回复