定義棧的資料結構,請在該型別中實現乙個能夠得到棧的最小元素的min函式。在該棧中,呼叫min、push及pop的時間複雜度都是o(1)。
思路:push 和pop肯定都是符合要求的,那麼min該怎麼辦呢?常數時間,那麼就必須空間換時間了。那麼就來乙個輔助棧吧,如果棧元素也有序號的話,那麼就是說在主棧的序號對應輔助棧的序號。
**如下:
template void stackwithmin::push(const t & value)
template void stackwithmin::pop()
templateconst t&startwithmin::min() const
《微軟面試題》設計包含min函式的棧
設計包含min函式的棧。定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素。要求函式min push以及pop的時間複雜度都是o 1 如下 stack.h pragma once include simulation stack datastruct templateclass node...
面試題21 包含min函式的棧
普通建構函式,構造乙個大小為maxsize的棧 cstack cstack int maxsize 拷貝建構函式 cstack cstack const cstack stack 賦值函式 cstack cstack operator const cstack stack if stack.m to...
面試題30 包含min函式的棧
定義棧的資料結構,請在該型別中實現乙個能夠得到棧的最小元素的min函式。在該棧中,呼叫min push及pop的時間複雜度都是o 1 思路 利用乙個輔助棧來存放最小值 棧 3,4,2,1 輔助棧 3,3,2,1 每入棧一次,就與輔助棧頂比較大小,如果小就入棧,如果大就入棧當前的輔助棧頂 當出棧時,輔...