题目描述
设计一个栈类完成压栈和出栈操作 (0≤n≤8)。
栈有下面这样的特点:
1) 用数组描述的顺序栈,只有一个对数据进行存入和取出的端口;
2) 后进者先出,即最后被存入的数据将首先被取出。取出也只可以从顶端进行,即后进先出。
提交压栈,出栈函数即可。
#include <iostream>
using namespace std;
class stack
{
int data[8];
int top;
public:
stack(void);
void push(float a);
int pop(void);
};
stack::stack(void)
{
top = 0;
cout << "stack initialized";
}
// 此处为进栈、出栈函数
int main()
{
stack s1;
int i, n;
scanf("%d", &n);
for (i = 1; i <= n; i++)
s1.push(2 * i);
for (i = 1; i <= n; i++)
cout << s1.pop() << " ";
return 0;
}
输入
见参考程序中的 main
函数。
输出
stack initialized12 10 8 6 4 2
输入输出样例
样例输入 #1
6
样例输出 #1
stack initialized12 10 8 6 4 2
参考解答:
#include <iostream>
#include<stdio.h>
using namespace std;
class stack
{
int data[8];
int top;
public:
stack(void);
void push(float a);
int pop(void);
};
stack::stack(void)
{
top = 0;
cout << "stack initialized";
}
// 此处为进栈、出栈函数
void stack::push(float a)
{
data[top++] = a;
}
int stack::pop()
{
return data[--top];
}
int main()
{
stack s1;
int i, n;
scanf("%d", &n);
for (i = 1; i <= n; i++)
s1.push(2 * i);
for (i = 1; i <= n; i++)
cout << s1.pop() << " ";
return 0;
}