posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          支持O(1)時間push pop min方法的棧

          Posted on 2007-10-29 21:30 ZelluX 閱讀(766) 評論(2)  編輯  收藏 所屬分類: Algorithm

          算法課的習題
          題目很簡單,但是代碼很漂亮

          [zz]

          template <typename T>
          class min_stack {
          public:
            
          void push(const T& v) {
              s.push(make_pair(v, empty()
          ||v<s.top().second ? v : s.top().second));
            }


            
          void pop() { s.pop(); }

            
          const T& top() return s.top().first; }

            
          const T& min() return s.top().second; }

            
          bool empty() return s.empty(); }

          private:
            std::stack
          <std::pair<T, T> > s;
          }
          ;

          評論

          # re: 支持O(1)時間push pop min方法的棧  回復  更多評論   

          2007-11-17 14:09 by Lee.MaRS
          這個pair用得太難看了...

          # re: 支持O(1)時間push pop min方法的棧  回復  更多評論   

          2007-11-20 00:43 by ZelluX
          @Lee.MaRS
          囧 為什么老被你bs @,@
          主站蜘蛛池模板: 汉中市| 郓城县| 巴青县| 尤溪县| 湖北省| 察隅县| 广安市| 安阳县| 奉节县| 资兴市| 永康市| 宣化县| 建始县| 台安县| 凌云县| 慈溪市| 曲靖市| 逊克县| 墨脱县| 宁德市| 长宁县| 清水河县| 民乐县| 巴彦县| 翁源县| 铜川市| 沿河| 游戏| 邯郸县| 黔东| 东丽区| 南昌市| 泰宁县| 诸暨市| 洮南市| 疏勒县| 桂东县| 德州市| 静安区| 华阴市| 武鸣县|