zoukankan      html  css  js  c++  java
  • 数据结构-Stack和Queue

    实现:

     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 }
  • 相关阅读:
    【转载】Dom篇
    【转载】Eclipse自动编译问题
    RabbitMQ
    分布式消息中间件
    分布式限流算法
    分布式限流和熔断
    数据库中间件
    redis 集群原理
    redis 哨兵模式(读写分离)
    redis 和memcache 区别
  • 原文地址:https://www.cnblogs.com/dracohan/p/3870734.html
Copyright © 2011-2022 走看看