題目描述:定義棧的資料結構,請在該型別中實現乙個能夠得到棧最小元素的min函式。
輸入:輸入可能包含多個測試樣例,輸入以eof結束。
對於每個測試案例,輸入的第一行為乙個整數n(1<=n<=1000000), n代表將要輸入的操作的步驟數。
接下來有n行,每行開始有乙個字母ci。
ci=』s』時,接下有乙個數字k,代表將k壓入棧。
ci=』o』時,彈出棧頂元素。
輸出:對應每個測試案例中的每個操作,
若棧不為空,輸出相應的棧中最小元素。否則,輸出null。
樣例輸入:
7樣例輸出:s 3s 4
s 2s 1oo
s 0
3321230
#include#include#define max 1000
int top=-1;
/*在棧頂索引指標為top時,向棧a中壓入資料data*/
bool push(int *a,int data)
/* 在棧頂索引指標為top時,出棧
*/ bool pop()
//min棧作為輔助棧,棧頂儲存棧中最小的元素
void minall(int* a,int*min)
}/*返回棧頂為top 時棧中的元素的最小值*/
int min(int *min)
int main()
{ int num;
int a[max];
int min[max];
while(scanf("%d",&num)!=eof)
{ for(int i=0;i
結果:
js 包含min函式的棧 包含min函式的棧
目標 定義棧的資料結構,請在該型別中實現乙個能夠得到棧的最小元素的 min 函式在該棧中,呼叫 min push 及 pop 的時間複雜度都是 o 1 設計思路 我們要做的是在我們每次資料入棧的時候,記錄當前資料棧中最小值,並且在pop 出棧之後依然能找到最小值 方案 如果只用乙個 min 變數來儲...
包含min函式的棧
1.問題描述 定義棧的資料結構,請在該型別中實現乙個能夠得到棧的最小元素的函式,在該棧中呼叫min,push及pop的時間複雜度都為o 1 來自 劍指offer 2.分析 我們可以使用乙個輔助棧,專門來處理題目中得到棧的最小元素的函式時間複雜度為o 1 的這個需求。當我們壓棧時,另外乙個棧正常進行,...
包含min函式的棧
題目描述 定義棧的資料結構,請在該型別中實現乙個能夠得到棧最小元素的min函式。借用輔助棧儲存min的大小,自定義了棧結構 private int size private int min integer.max value private stackminstack new stack priva...