實現思路:
用乙個棧(資料棧
)儲存資料,另外乙個棧(最小值棧
)儲存最小值。
每次push
時,將資料直接壓入資料棧,然後將資料根據條件壓入到最小值棧。如果最小值棧為空,直接壓入最小值棧。如果資料比最小值棧棧頂元素小,則將其壓入最小值棧。否則壓入最小值棧棧頂元素。
每次pop
時,將資料棧和最小值棧的棧頂都進行pop。
實現**:
標頭檔案stackwithmin.h
class
stackwithmin
;
標頭檔案stackwithmin.cpp
bool stackwithmin::
empty()
std::size_t stackwithmin::
size()
int stackwithmin::
top(
)void stackwithmin::
push
(int newdata)
// 這是重點
void stackwithmin::
pop(
)// 這是重點
int stackwithmin::
min(
)// 這是重點
面試題21 包含min函式的棧
普通建構函式,構造乙個大小為maxsize的棧 cstack cstack int maxsize 拷貝建構函式 cstack cstack const cstack stack 賦值函式 cstack cstack operator const cstack stack if stack.m to...
18 包含min函式的棧
包含min函式的棧 定義棧的資料結構,請在該型別中實現乙個能夠得到棧最小元素的min函式。劍指offer上的例子講解的非常精彩。error control may reach end of non void function werror,wreturn type 意為無法找到non void fu...
20 包含min函式的棧
思路1 選用存放資料的棧s和存放當前最小值的輔助棧mins,當s記憶體入比當前最小值還小的樹,則該數字入輔助棧,若存放值比當前最小值大,則再次存入當前最小值到輔助棧 這樣mins存在冗餘資訊,可進一步改進。1 class solution else void pop int top int min ...