設計乙個帶有getMin功能的棧

2021-08-14 00:18:21 字數 968 閱讀 7745

題目:

實現乙個特殊的棧,在實現棧的基本功能的基礎上,再實現返回棧中最小元素的操作。

要求:

1,pop, push, getmin操作的時間複雜度都是o(1). 注:

1, 設計的棧型別可以使用現有的棧結構。

思路:可以考慮使用兩個棧來進行設計,乙個棧用來儲存當前棧中的元素,其功能和乙個正常的棧沒有區別,這個棧記為stackdata;另乙個棧用於儲存每一步的最小值,這個棧記為stackmin。

**:

思路一:

public class mystack1 

public void push(int newnum) else if (newnum <= this.getmin())

this.stackdata.push(newnum);

} public int pop()

int value = this.stackdata.pop();

if (value == this.getmin())

return value;

} public int getmin()

return this.stackmin.peek();

}}

思路二:

public class mystack2

public void push(int newnum) else if (newnum < this.getmin()) else

this.stackdata.push(newnum);

} public int pop()

this.stackmin.pop();

return this.stackdata.pop();

} public int getmin()

return this.stackmin.peek();

}}

設計乙個具有getMin 功能的棧

設計乙個具有getmin 功能的棧 1.push pop getmin 時間複雜度為o 1 2.設計棧時可以使用現有的棧結構 設計乙個具有getmin 功能的棧 1.pop,push,getmin 時間複雜度為o 1 2.設計的棧可以使用現有的棧結構 author nemo public class...

設計乙個有GetMin功能的棧

兩種資料壓入規則,也就是兩種實現的方法,利用兩個棧,乙個stackdata棧用來壓入所有的資料,所有資料都會壓入此棧,乙個satckmin用來壓入最小元素 對應的就是stackdata中的最小元素 第一種方法 壓棧規則 1 當將資料壓入棧stackdata時,判斷stackmin棧是否為空,為空則將...

設計乙個有getMin功能的棧

使用c 完成 程式設計師 面試指南 it名企演算法與資料結構題目 實現乙個特殊的棧,在實現棧的基本功能基礎上,再實現返回棧中最小元素的操作 使用兩個棧,乙個棧用來儲存當前棧中的元素,起功能和乙個正常的棧沒有區別,這個棧記為stackdata 另乙個棧用於儲存每一步的最小值,這個棧記為stackmin...