您的位置:首页 > 其它

使用数组和底层容器实现栈

2014-03-07 12:03 465 查看
使用数组实现栈:

#include <cassert>
#include <cstdlib>
#include <iostream>
using namespace std;
template <class T>
class stack {
public:
typedef size_t size_type;
typedef T value_type;
static const size_type CAPICITY = 30;
stack() {
used = 0;
}
void push(const value_type& val) {
assert(size() < CAPICITY);
data[used++] = val;
}
void pop() {
assert(!empty());
used--;
}
value_type top() {
assert(!empty());
return data[used-1];
}
size_type size() { return used;	}
bool empty() { return (used==0); }

private:
size_type used;
value_type data[CAPICITY];
};


使用底层容器实现栈:

#include <deque>
using namespace std;
template <class T, class Sequence = deque<T>>
class stack {
public:
typedef typename Sequence::size_type size_type;
typedef typename Sequence::value_type value_type;
void push(const value_type& val)  {
c.push_back(val);
}
void pop() {
c.pop_back();
}
value_type top() {
return c.back();
}
size_type size() { return c.size();	}
bool empty() { return c.empty(); }

private:
Sequence c;
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: