c++出栈入栈问题
#include<iostream>usingnamespacestd;template<classT>classStack{private:Telem[100];解释一...
#include<iostream>
using namespace std;
template<class T>
class Stack
{
private:
T elem[100]; 解释一下
int top;
public:
void push(T x);
T pop();
Stack() 解释一下
{
top = -1;
}
};
template<class T> 解释一下
void Stack<T>::push(T x)
{
top++;
elem[top] = x; 解释一下
}
template<class T> T 解释一下
Stack<T>::pop()
{
T ret = elem[top];
top--;
return ret;
}
int main()
{
Stack<int> stc; 解释一下
int a[100];
int length = 0;
for (int i = 0; i < 100; i++){
cin >> a[i];
if (a[i] == 0)
{
break;
}
stc.push(a[i]);
length = i;
}
for (int i = 0; i <= length; i++)
{
cout << stc.pop() << endl;
}
return 0;
} 展开
using namespace std;
template<class T>
class Stack
{
private:
T elem[100]; 解释一下
int top;
public:
void push(T x);
T pop();
Stack() 解释一下
{
top = -1;
}
};
template<class T> 解释一下
void Stack<T>::push(T x)
{
top++;
elem[top] = x; 解释一下
}
template<class T> T 解释一下
Stack<T>::pop()
{
T ret = elem[top];
top--;
return ret;
}
int main()
{
Stack<int> stc; 解释一下
int a[100];
int length = 0;
for (int i = 0; i < 100; i++){
cin >> a[i];
if (a[i] == 0)
{
break;
}
stc.push(a[i]);
length = i;
}
for (int i = 0; i <= length; i++)
{
cout << stc.pop() << endl;
}
return 0;
} 展开
2个回答
展开全部
这样?:
#include<iostream>
using namespace std;
template<class T>
class Stack
{
private:
T elem[100]; //定义了一个数组,用来存储数据。类型为模板形参类型T的100个元素的数组
int top;
public:
void push(T x);
T pop();
Stack() //默认构造函数,内部给top赋值了-1.(可以考虑该用初始化列表)
{
top = -1;
}
};
template<class T> //模板形参,成员方法,top属性增1表示多存了一个值。
void Stack<T>::push(T x)
{
top++;
elem[top] = x; //在数组elem对应位置存放了这个值
}
template<class T> T //弹出一个元素,并将top的值减1,表示存储的数据去除了一个
Stack<T>::pop()
{
T ret = elem[top];
top--;
return ret;
}
int main()
{
Stack<int> stc; //以int作为模板实参实例化了模板得到一个新类Stack<int> ,并定义了Stack<int> 类型的一个对象取名stc
int a[100];
int length = 0;
for (int i = 0; i < 100; i++){
cin >> a[i];
if (a[i] == 0)
{
break;
}
stc.push(a[i]);
length = i;
}
for (int i = 0; i <= length; i++)
{
cout << stc.pop() << endl;
}
return 0;
}
展开全部
#include<iostream>
using namespace std;
template<class T>
class Stack
{
private:
T elem[100]; //栈中实际元素保存位置,最多存储100个元素
int top;
public:
void push(T x);
T pop();
Stack() //默认构造函数,在声明一个栈时调用,初始化栈顶指正为-1
{
top = -1;
}
};
template<class T> //泛式 T是一个类,可以为任何你想要的类型
void Stack<T>::push(T x)
{
top++;
elem[top] = x; //入站操作,将x放入栈顶
}
template<class T> T //确定这样写正确?不应该是<template <class T>回车T Stack<T>::pop()?
Stack<T>::pop()
{
T ret = elem[top];
top--;
return ret;
}
int main()
{
Stack<int> stc; //声明一个存储为int型变量的栈
int a[100];
int length = 0;
for (int i = 0; i < 100; i++){
cin >> a[i];
if (a[i] == 0)
{
break;
}
stc.push(a[i]);
length = i;
}
for (int i = 0; i <= length; i++)
{
cout << stc.pop() << endl;
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询