栈可以说是基础中的基础了吧,不会这个真说不过去了。
最近比较喜欢一句话,再难的技术,也顶不住傻逼式的坚持!!!
//C++面向对象实现栈的基本操作(数组)
#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
//typedef int data;
class Stack{
private:
int top;
int maxsize;
int * list;
public:
//构造函数初始化栈;
Stack(){
maxsize = 1000;
int top = 0;
list = new int [maxsize];
}
Stack(int sz){
if (sz > 0)
maxsize = sz;
else
maxsize = 1000;
top = 0;
list = new int [maxsize];
}
//入栈操作;
void push(const int & it){
list[top++] = it;
}
//出栈操作;
int pop(){
return list[--top];
}
//得到栈顶元素;
int top_value()const{
return list[top - 1];
}
//栈内元素数量;
int length(){
return top;
}
};
int main(){
Stack s;//创建一个对象;
int n,i;
cin >> n;
for( i=1; i<=n; i++){
s.push(i);
}
cout << s.length() << endl;
for ( i = 1; i<=n; i++){
if (i == n )
cout<< s.pop() << endl;
else
cout<<s.pop()<<" ";
}
cout << s.length() << endl;//输出栈内元素的数量;
return 0;
}