第2題:定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素
要求:函式min、push、pop的時間複雜度都是o(1)
新元素入棧時,將包括自身在內的所有元素中的最小值儲存在自身節點的mindata中,這樣不管出棧/入棧,棧頂都將永遠儲存當前所有元素的最小值。
package test002;
/** * created by cq on 2015/3/25.
* 節點node的定義
*/public
class
node
public
intgetdata()
public
void
setdata(int data)
public node getnext()
public
void
setnext(node next)
public
intgetmindata()
public
void
setmindata(int mindata)
}
package test002;
/** * created by cq on 2015/3/25.
* 第二題:定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素
* 要求:函式min、push以及pop的時間複雜度為o(1)
*/public
class
minstack
public
boolean
isempty()
//返回最小值,不對棧進行操作
public
intgetmindata()
return stack.getmindata();
}public
intpop()
int temp = stack.getdata();
stack = stack.getnext();
return temp;
}public
void
push(int data)
node.setnext(stack);
}stack = node;
}public
static
void
main(string args)
}
2 設計包含min 函式的棧
2.設計包含min 函式的棧。定義棧的資料結構,要求新增乙個min 函式,能夠得到棧的最小元素。要求函式min push 以及pop 的時間複雜度都是o 1 思路 1 min,push,pop都需要時間複雜度為o 1 所以樹,堆等資料結構都不能用 2 棧只有通過push來新增元素,pop來刪除元素,...
2 設計包含min 函式的棧。
題目描述 定義棧的資料結構,要求新增乙個min 函式,能夠得到棧的最小元素。要求函式min push 以及pop 的時間複雜度都是o 1 分析 這種題其實是相當的簡單,只需要多開乙個棧,用來儲存最小的元素,然後就能做到時間複雜度都是o 1 實現 include include includeusin...
第30題 包含min函式的棧
定義棧的資料結構,請在該型別中實現乙個能夠得到棧中所含最小元素的min函式 時間複雜度應為o 1 1.使用資料棧彈出到輔助棧,再從輔助棧彈回到資料棧,儲存住資料棧的結構 2.資料棧在不斷彈出棧頂元素的過程中,通過乙個變數儲存住最小值。public class solution public void...