實現包含min函式的棧 C 版

2021-07-08 10:50:27 字數 603 閱讀 9254

題目:

實現乙個特殊的棧,要求除了實現基本棧功能,還需要實現返回棧中最小元素的功能。

要求:pop() push() top() min()等操作的時間複雜度均為o(1)。

思路:考慮使用2個棧,乙個用於儲存待壓入的資料,另乙個棧專門用於儲存最小值。

初始:2個棧都為空 將元素都壓入進去。

之後:如果待壓入的元素 <= 最小值棧的棧頂元素 那麼同樣需要將元素壓進2個棧。

否則 只需要將元素壓進資料棧。

貼**:

stacknumstack;		// 記錄裝入資料的棧

stackminstack; // 記錄最小值的棧

void push(int value)

// 否則 需要比較 minstack的棧頂元素和value的大小

else

}numstack.push(value);

} void pop()

if (numstack.top() == minstack.top())

numstack.pop();

} int top()

int min()

c 實現 包含min函式的棧

題目描述 定義棧的資料結構,請在該型別中實現乙個能夠得到棧中所含最小元素的min函式 時間複雜度應為o 1 注意 保證測試中不會當棧為空的時候,對棧呼叫pop 或者min 或者top 方法。分析題目 要求實現乙個o 1 時間複雜度的返回最小值的棧。正常情況下,棧的push,pop操作都為o 1 但是...

js 包含min函式的棧 包含min函式的棧

目標 定義棧的資料結構,請在該型別中實現乙個能夠得到棧的最小元素的 min 函式在該棧中,呼叫 min push 及 pop 的時間複雜度都是 o 1 設計思路 我們要做的是在我們每次資料入棧的時候,記錄當前資料棧中最小值,並且在pop 出棧之後依然能找到最小值 方案 如果只用乙個 min 變數來儲...

包含min函式的棧

題目描述 定義棧的資料結構,請在該型別中實現乙個能夠得到棧最小元素的min函式。輸入 輸入可能包含多個測試樣例,輸入以eof結束。對於每個測試案例,輸入的第一行為乙個整數n 1 n 1000000 n代表將要輸入的操作的步驟數。接下來有n行,每行開始有乙個字母ci。ci s 時,接下有乙個數字k,代...