Min棧的實現

2021-08-28 17:28:54 字數 906 閱讀 4845

問題:實現乙個棧,要求實現push(入棧)、pop(出棧)、min(返回最小值)的時間複雜度為o(1)

思路:用兩個棧來實現,乙個存正常棧,另乙個存最小棧,要用到棧的基本操作,**中的"stack.h"是我寫的棧的基本操作的**

//初始化

void minstackinit(minstack *pms)

//入棧

void minsatckpush(minstack *pms, stackdatatype)

//當最小值重複的時候,再壓一次棧

if (data <= stacktop(pmin)) }

//出棧

void minstackpop(minstack* pms)

stackpop(&(pms->stacknormal));

}//棧頂元素

stackdatatype minstacktop(const minstack *pms)

//最小值

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函式的棧 C 版

題目 實現乙個特殊的棧,要求除了實現基本棧功能,還需要實現返回棧中最小元素的功能。要求 pop push top min 等操作的時間複雜度均為o 1 思路 考慮使用2個棧,乙個用於儲存待壓入的資料,另乙個棧專門用於儲存最小值。初始 2個棧都為空 將元素都壓入進去。之後 如果待壓入的元素 最小值棧的...