第2題 設計包含min函式的棧

2022-09-18 18:51:10 字數 1226 閱讀 2812

第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...