青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-80  評論-24  文章-0  trackbacks-0
正常的棧如果想取最大或最小值需要O(N)時間復雜度,如果需要O(1)時間的話該如何做呢?可以采取空間換時間的方法,使用另外一個棧來記錄當前的最大值,這樣就可以達到時間最優,代碼如下:

 1 template<typename Type>
 2 class Stack {
 3   public:
 4     Stack() {}
 5     ~Stack() {}
 6 
 7     void Push(Type elem) {
 8       if (s.empty()) {
 9         s.push(elem);
10         cur_max.push(elem);
11         cur_min.push(elem);
12       } else {
13         s.push(elem);
14         cur_max.push(cur_max.top() > elem ? cur_max.top() : elem);
15         cur_min.push(cur_min.top() > elem ? elem : cur_min.top());
16       }
17     }
18 
19     void Pop() {
20       assert(!s.empty() && !cur_max.empty() && !cur_min.empty());
21       s.pop();
22       cur_max.pop();
23       cur_min.pop();
24     }
25 
26     Type Top() {
27       assert(!s.empty());
28       return s.top();
29     }
30 
31     Type Max() {
32       assert(!cur_max.empty());
33       return cur_max.top();
34     }
35 
36     Type Min() {
37       assert(!cur_min.empty());
38       return cur_min.top();
39     }
40 
41     bool Empty() {
42       return s.empty();
43     }
44 
45     bool Empty() {
46       return s.empty();
47     }
48 
49     int Size() {
50       return s.size();
51     }
52 
53   private:
54     std::stack< Type > s;
55     std::stack< Type > cur_max;
56     std::stack< Type > cur_min;
57 };

上面的代碼采用C++的模版,并且底層數據結構依然采用stl中的棧來實現。
如果要使得去隊列的Max和Min操作盡量快,那么可以考慮使用兩個棧來模擬隊列,假設棧為s1和s2,入隊的時候只往s1中入;出棧的時候只從s2出,如果s2為空,則將s1中所有的元素都一次出棧并依次入棧進s2;求隊列的最大值即求s1和s2兩個棧的最大值,求隊列的最小值即求s1和s2兩個棧的最小值,代碼如下:

 1 template <typename Type>
 2 class Queue {
 3   public:
 4     Queue() {}
 5     ~Queue() {}
 6 
 7     void Push(Type elem) {
 8       s1.Push(elem);
 9     }
10 
11     void Pop() {
12       if (s2.Empty()) {
13         while (!s1.Empty()) {
14           s2.Push(s1.Top());
15           s1.Pop();
16         }
17       }
18       assert(!s2.Empty());
19       s2.Pop();
20     }
21 
22     Type Front() {
23       if (s2.Empty()) {
24         while (!s1.Empty()) {
25           s2.Push(s1.Top());
26           s1.Pop();
27         }
28       }
29       assert(!s2.Empty());
30       return s2.Top();
31     }
32 
33     Type Max() {
34       Type res1;
35       Type res2;
36       if (s1.Empty()) {
37         assert(!s2.Empty());
38         return s2.Max();
39       } else {
40         res1 = s1.Max();
41         if (!s2.Empty()) {
42           res2 = s2.Max();
43           return res1 > res2 ? res1 : res2;
44         } else {
45           return res1;
46         }
47       }
48     }
49 
50     Type Min() {
51       Type res1;
52       Type res2;
53       if (s1.Empty()) {
54         assert(!s2.Empty());
55         return s2.Min();
56       } else {
57         res1 = s1.Min();
58         if (!s2.Empty()) {
59           res2 = s2.Min();
60           return res1 > res2 ? res2 : res1;
61         } else {
62           return res1;
63         }
64       }
65     }
66 
67   private:
68     Stack< Type > s1;
69     Stack< Type > s2;
70 };

主要是思想,編碼比較簡單。
posted on 2012-09-03 20:08 myjfm 閱讀(752) 評論(0)  編輯 收藏 引用 所屬分類: 算法基礎
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久精品夜色噜噜亚洲a∨| 亚洲愉拍自拍另类高清精品| 久久米奇亚洲| 激情小说另类小说亚洲欧美| 久久另类ts人妖一区二区| 久久国内精品自在自线400部| 国产一区 二区 三区一级| 久久久久久国产精品mv| 久久高清免费观看| 91久久夜色精品国产网站| 91久久线看在观草草青青| 欧美激情一区二区三区高清视频 | 欧美福利电影网| 亚洲精品专区| 日韩午夜免费视频| 国产乱码精品一区二区三区av| 久久久91精品| 欧美激情一区三区| 午夜一区在线| 麻豆91精品| 亚洲永久精品国产| 久久激情网站| 一本色道久久综合狠狠躁的推荐| 亚洲一区二区三区成人在线视频精品| 国产日韩欧美二区| 亚洲国产小视频在线观看| 国产精品v欧美精品v日本精品动漫| 香蕉久久国产| 欧美高清在线播放| 久久精品99国产精品| 欧美激情在线狂野欧美精品| 欧美一区二区三区四区视频| 嫩模写真一区二区三区三州| 欧美在线视频在线播放完整版免费观看| 久久久久久久久久看片| 中文成人激情娱乐网| 久久人人爽人人爽爽久久| 亚洲欧美视频一区二区三区| 久久最新视频| 久久精品人人做人人爽电影蜜月| 欧美激情一区二区在线| 麻豆精品一区二区av白丝在线| 欧美午夜三级| 亚洲欧洲一区| 亚洲成色www8888| 亚洲天堂av电影| 日韩小视频在线观看| 久久久蜜臀国产一区二区| 午夜宅男久久久| 欧美日韩精品一区二区在线播放| 久热精品在线视频| 国产日韩欧美一区二区三区四区| 亚洲美女色禁图| 亚洲精品日韩一| 久久露脸国产精品| 久久久精品五月天| 国产一级一区二区| 亚洲欧美一区二区精品久久久 | 国产精品第十页| 亚洲精品字幕| 亚洲精品在线视频| 久久久免费精品视频| 久久久久久久综合日本| 国产乱人伦精品一区二区| 亚洲夜晚福利在线观看| 亚洲午夜国产一区99re久久 | 午夜久久久久久| 欧美一级二区| 国产精品日韩精品欧美在线| 一区二区日韩免费看| 亚洲视频精选在线| 国产精品久久久久久久7电影 | 欧美黑人国产人伦爽爽爽| 黄色在线一区| 久久资源av| 亚洲欧洲综合另类在线| 日韩午夜在线观看视频| 欧美日韩国产精品自在自线| 亚洲另类在线视频| 亚洲性xxxx| 国产精品自在欧美一区| 欧美一级精品大片| 免费观看国产成人| 日韩一级成人av| 欧美日韩日本网| 亚洲欧美日韩视频一区| 久久婷婷亚洲| 99国产精品国产精品久久| 欧美日韩高清在线一区| 亚洲一区免费视频| 老色鬼精品视频在线观看播放| 亚洲高清久久久| 欧美日韩免费观看一区三区| 中文欧美日韩| 巨乳诱惑日韩免费av| 日韩视频在线免费观看| 国产精品一区毛片| 久久综合久久久久88| 一区二区久久久久| 久久在精品线影院精品国产| 亚洲人人精品| 国产精品一区在线观看| 两个人的视频www国产精品| 亚洲精品久久久久久久久| 久久国产精彩视频| 日韩午夜黄色| 韩国女主播一区| 欧美性猛交99久久久久99按摩| 欧美在线观看日本一区| 日韩视频免费观看高清完整版| 久久精品一区二区三区中文字幕| 亚洲精品国产拍免费91在线| 国产精品一区在线播放| 欧美激情第五页| 久久国产精品网站| 日韩视频精品在线观看| 欧美成人黑人xx视频免费观看| 亚洲伊人久久综合| 亚洲深夜av| 国产一区二区久久| 欧美精品在线观看播放| 久久精品成人一区二区三区| 日韩视频中文| 欧美电影在线免费观看网站| 久久不射网站| 亚洲尤物视频在线| 亚洲韩国精品一区| 国内精品久久久久久久影视蜜臀 | 亚洲一级黄色| 亚洲欧洲一级| 免费91麻豆精品国产自产在线观看| 国产精品99久久久久久人| 亚洲高清123| 精品成人免费| 国产一区二区三区在线观看精品 | 性欧美18~19sex高清播放| 国产婷婷一区二区| 国产精品国产三级国产a| 欧美国内亚洲| 蜜桃视频一区| 久久综合精品国产一区二区三区| 午夜激情久久久| 亚洲天堂网在线观看| 一二美女精品欧洲| 亚洲免费成人av| 艳妇臀荡乳欲伦亚洲一区| 亚洲精品麻豆| 亚洲精品一区二区三区四区高清 | 一区二区高清在线| 亚洲乱码国产乱码精品精可以看 | 亚洲欧美日韩一区二区三区在线观看| 一本色道久久综合亚洲二区三区| 亚洲毛片一区| 亚洲一区二区日本| 亚洲一区二区动漫| 午夜视频一区二区| 久久久久久久久伊人| 麻豆91精品| 亚洲韩国青草视频| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲乱码久久| 亚洲中午字幕| 久久亚洲图片| 欧美精品自拍| 国产精品一区二区男女羞羞无遮挡| 国产精品永久免费观看| 狠狠久久婷婷| 亚洲美女黄色| 午夜精品国产| 麻豆精品网站| 日韩一区二区精品在线观看| 亚洲一级黄色片| 久久久国产精品一区| 欧美大片免费看| 国产精品视频xxx| 在线观看视频免费一区二区三区| 亚洲美女性视频| 欧美中文在线观看国产| 免费观看亚洲视频大全| 日韩视频在线观看免费| 午夜国产精品影院在线观看| 麻豆九一精品爱看视频在线观看免费| 欧美日韩dvd在线观看| 国产亚洲精品一区二区| 日韩一级黄色av| 久久精品视频网| 亚洲国产成人午夜在线一区| 亚洲欧美变态国产另类| 欧美jizz19性欧美| 国产欧美日韩精品在线| 亚洲理论电影网| 久久一区二区精品| 亚洲少妇在线| 欧美精品一区二区精品网| 国产一区二区三区成人欧美日韩在线观看 | 亚洲成人在线免费| 亚洲欧美不卡| 亚洲日本在线观看| 久久久久欧美| 国产日本欧美一区二区三区在线|