文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>第5节 栈

第5节 栈

时间:2010-08-30  来源:chinazhangjie

 1 #include "linked_dclist.h" // for linked_dclist<T> 
2
3 template <class T>
4 class stack {
5 typedef T value_type;
6 typedef unsigned int s_size;
7 public:
8 // 构造函数
9 stack() { }
10 // 拷贝构造函数
11 stack(const stack<T>& s) {
12 elem = s.elem;
13 }
14
15 // 返回长度
16 s_size size() const {
17 return elem.size();
18 }
19
20 // 清空栈
21 void clear() {
22 elem.clear();
23 }
24
25 bool empty() const {
26 return elem.size() == 0;
27 }
28
29 value_type get_top() const {
30 return elem[size()-1];
31 }
32 void push(const value_type& relem) {
33 elem.push_back(relem);
34 }
35
36 // 删除栈顶元素,返回其值
37 value_type pop(){
38 try {
39 return elem.remove(size()-1);
40 }
41 catch (...) {
42 throw std::out_of_range("pop out_of_range");
43 }
44 }
45
46 // 重载赋值运算符
47 stack<T>& operator = (const stack<T>& rhs) {
48 if (this == &rhs)
49 return *this;
50 elem = rhs.elem;
51 }
52
53 // 重载 "<<"
54 friend
55 ostream& operator << (ostream& out,stack<T>& rhs) {
56 cout << rhs.elem ;
57 return out;
58 }
59
60 private:
61 linked_dclist<value_type> elem; // 内部存储采用双向循环链表
62 };

 

相关阅读 更多 +
排行榜 更多 +
无限Fps

无限Fps

飞行射击 下载
幸存者时间僵尸

幸存者时间僵尸

飞行射击 下载
金属兄弟Metal Brother

金属兄弟Metal Brother

冒险解谜 下载