基本上是把**抄了一遍,中間也查閱和理解了不少東西。
這裡的思想和程式設計之美上面的稍有不同,程式設計之美上面給出的解法是涉及乙個最小值的鏈,而這次的思路是涉及乙個對應的棧,如果push的不是最小值,則把以前的座標壓棧。
#include #includetemplate
class
cstackwithmin
virtual ~cstackwithmin(void
) {}
t& top(void
);
const t& top(void) const
;
void push(const t&value);
void pop(void
);
const t& min(void) const
;private
: deque
m_data;
deque
m_minindex;
};template
t& cstackwithmin::top()
template
const t& cstackwithmin::top() const
template
void cstackwithmin::push(const t&value)
}template
void cstackwithmin::pop()
template
const t& cstackwithmin::min() const
感嘆自己的c++水平不足,以後還得不斷習練才行。
02設計包含min函式的棧
題目 定義棧的資料結構,要求新增乙個min 函式,能夠得到棧的最小元素。要求函式min push 以及pop 的時間複雜度都是o 1 思路 元素結構裡包含乙個min域,表示當前元素壓棧後,當前棧內的最小元素的值。include using namespace std define stack siz...
100題 02 設計包含min函式的棧
題目 定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素。要求函式min push以及pop的時間複雜度都是o 1 以下是 pragma once template typename t class stack template typename t class stack node t...
資料結構 資料結構與演算法02
1 演算法設計的原則 設計演算法時,通常應考慮達到以下目標 1,正確性 2,可讀性 3,健壯性 4,高效率與低儲存量需求 1,正確性 規格說明 四個層次 a,程式中不含語法錯誤 b,程式對於幾組輸入資料能夠得出滿足要求的結果 c,程式對精心選擇的 典型 苛刻切帶有刁難性的幾組輸入資料能夠得出滿足要求...