與棧相關的問題

2022-07-12 02:36:13 字數 1281 閱讀 9854

1.設計乙個棧,在其基礎功能的基礎上,設計乙個getmin方法,每次呼叫時返回當前棧內的最小值。

要求:時間複雜度為o(1),可使用現成的棧結構。

思路:設計該棧有兩個棧,乙個儲存正常資料stackdata,乙個儲存正常資料中的較小值stackmin。在新資料壓入棧時,比較其與stackmin中棧頂元素,如果新資料小於等於stackmin棧頂,則將其插入stackmin,否則捨棄。同樣,在stackdata出棧時,檢查出棧元素和stackmin的棧頂元素是否相等,相等則stackmin也同樣出棧,這樣就保證了stackmin的頂部始終儲存的是stackdata中的最小元素。

如圖壓入3,4,5,1,2,1

**如下

#include#include#includeusing namespace std;

template class mystack

; templatevoid mystack::push(t newnum)

else

stackmin.push(newnum);

return;

} templatebool mystack::pop()

else

stackdata.pop();

return true;

} templatet mystack::getmin()

int main()

void add(t input);

t poll();

t peek();

}; templatevoid myqueue::add(t input)

} stackpush.push(input);

flag = 1;

return;

} templatet myqueue::poll()

} t res = stackpop.top();

stackpop.pop();

flag = -1;

return res;

} templatet myqueue::peek()

} t res = stackpop.top();

flag = -1;

return res;

}int main()

} templatevoid reverse(stack*st)

}int main()

cout<

return 0;

}

棧相關問題

1 兩個佇列實現棧 2 兩個棧實現佇列 3 棧的有效性 用乙個棧結構來模擬。實質上是用棧儲存了進棧的順序。每遍歷到乙個數字位置,便進棧,top指標只增不減。當當前遍歷元素值大於top指標時,就將top指標以下所有節點入棧。當棧為空,或者棧頂元素不等於pop到的元素時,return false 4 求...

關於fragment回退棧的相關問題

一 fragment回退棧 activity切換時,相信大家都知道是通過棧的形式,不斷壓棧出棧,在fragment的時候,如果你不是手動開啟回退棧,它是直接銷毀再重建,但如果將fragment任務新增到回退棧,情況就會不一樣了,它就有了類似activity的棧管理方式。二 準備工作 2 activi...

虛擬機器棧相關的問題

q 舉例棧溢位的情況?stackoverflowerror a 遞迴呼叫等,通過 xss設定棧的大小 q 調整棧的大小,就能保證不出現溢位麼?q 分配的棧記憶體越大越好麼?q 垃圾 是否會涉及到虛擬機器棧?a 不會 記憶體區塊 error gc 程式計數器無無 本地方法棧有無 虛擬機器棧有無 堆區有...