用模板设计一个栈类

2025-05-12 14:21:16
推荐回答(2个)
回答1:

#include
using namespace std;
template
class Stack
{
private:
T s[10];
int top;
public:
bool push(T a);
T pop(int i);
bool stackempty();
Stack(){top=0;}
};
template
bool Stack::push(T a)
{
if(top<10)
{
s[top++]=a;
return 1;
}
else
return 0;
}
template
T Stack::pop(int i)
{

if(i==0)top--;
return s[top--];

}
template
bool Stack::stackempty()
{
if(s)
return 0;
else
return 1;
}
void main()
{
int a,n;char b;
Stack a1;
cout<<"请输入栈元素个数:";
cin>>n;
cout<<"请输入栈元素:";
for(int i=0;i {
cin>>a;
a1.push(a);
}
cout<<"出栈:";
for(int i=0;i cout< cout< Stack a2;
cout<<"请输入栈元素个数:";
cin>>n;
cout<<"请输入栈元素:";
for(int i=0;i {
cin>>b;
a2.push(b);
}
cout<<"出栈:";
for(int i=0;i cout< cout<
}

回答2:

template
class stack
{
public:
stack(){i=0;}
T top(){return s[i];}
void pop(){i>=0?i--:0;}
void push(T const& d){if(i bool stackempty(){return i==0;}
private:
T s[SIZE];
int i;
};

int main()
{
stack a;
a.push(12);
stack b;
}