码迷,mamicode.com
首页 > 其他好文 > 详细

Stack和Queue的实现

时间:2014-07-27 10:45:32      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

实现:

 1 #include "c2_list.h"
 2 
 3 template <typename object>
 4 class Stack{
 5 public:
 6     bool isEmpty() const
 7     {return _list.empty();}
 8 
 9     const object& top() const
10     {_list.front();}
11 
12     void push(const object& x)
13     {_list.push_front(x);}
14 
15     object pop()
16     {object x = _list.front(); _list.pop_front(); return x;}
17 
18 private:
19     List<object> _list;
20 };
21 
22 template <typename object>
23 class Queue{
24 public:
25     bool isEmpty() const
26     {return _list.empty();}
27 
28     void enqueue(const object& x)
29     {_list.push_back(x);}
30 
31     object dequeue()
32     {object x = _list.front(); _list.pop_front(); return x;}
33 
34     const object& getFront(object& x)
35     {return _list.front();}
36     
37 private:
38     List<object> _list;
39 };

测试:

 1 #include "c2_stack_queue.h"
 2 #include <iostream>
 3 using namespace std;
 4 
 5 int main(){
 6     Stack<int> s;
 7     Queue<int> q;
 8 
 9 
10     for(int i = 0; i < 20; i++)
11     {
12         s.push(i);
13         q.enqueue(i);
14     }
15 
16     while(!s.isEmpty())
17     {
18         cout << s.pop() << " ";
19     }
20 
21     cout << endl;
22     
23     while(!q.isEmpty())
24     {
25         cout << q.dequeue() << " ";
26     }
27 
28 
29     return 0;
30 }

 

Stack和Queue的实现

标签:

原文地址:http://www.cnblogs.com/dracohan/p/3870734.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!