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

          支持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 @,@
          主站蜘蛛池模板: 梧州市| 响水县| 辽阳县| 仪征市| 丰顺县| 河池市| 浙江省| 乌苏市| 栾川县| 邵东县| 玛曲县| 延川县| 河源市| 营山县| 安庆市| 临安市| 博湖县| 民丰县| 寿光市| 沂水县| 潞城市| 璧山县| 安国市| 南郑县| 罗源县| 西吉县| 新巴尔虎左旗| 阳谷县| 昂仁县| 库伦旗| 陆河县| 辽阳县| 龙江县| 翁源县| 贺兰县| 乌鲁木齐县| 双辽市| 蚌埠市| 青田县| 济源市| 桐乡市|