題目:定義棧的資料結構,要求新增乙個min 函式,能夠得到棧的最小元素。
要求函式min、push 以及pop 的時間複雜度都是o(1)
思路:元素結構裡包含乙個min域,表示當前元素壓棧後,當前棧內的最小元素的值。
#include using namespace std;
#define stack_size 10
class stackelement
~stackelement() {}
public:
int m_value;
int m_min; // the current minimum value in stack
};class stackwithmin
~stackwithmin()
void push(int a)
m_data[m_size].m_value = a;
if(m_size == 0)
else
else
} cout<0)
else
} int min()
else
}private:
stackelement* m_data;
int m_size;
};int main()
; stackwithmin* stack = new stackwithmin();
for (int i=0; ipush(a[i]);
} cout 題目 定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素。要求函式min push以及pop的時間複雜度都是o 1 以下是 pragma once template typename t class stack template typename t class stack node t... 本文 題目 定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素。要求函式min push以及pop的時間複雜度都是o 1 分析 這是去年google的一道面試題。我看到這道題目時,第一反應就是每次push乙個新元素時,將棧裡所有逆序元素排序。這樣棧頂元素將是最小元素。但由於不能保證最後p... 定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素,要求函式min,push及pop的時間複雜度都是o 1 棧的資料結構包含兩個普通棧,乙個棧存資料,另乙個棧存最小值 或最小值的位置,如果用stl裡的棧,則不能存最小值的位置,因為stl裡的stack不支援下標索引訪問 cpp view ...100題 02 設計包含min函式的棧
設計包含min函式的棧
設計包含min函式的棧