實現乙個能找到棧的最小元素的min函式

2021-08-03 23:46:31 字數 440 閱讀 9285

定義兩個棧,乙個是資料棧,乙個是輔助棧。舉例說明:首先往空的資料棧中壓入3,顯然現在3是最小值,把這個值也壓入輔助棧,接下來往資料棧中壓入4,由於之前的3還是最小值,則4同樣壓入壓入輔助棧(為了和資料棧元素個數相同),接著往資料棧中壓入2,2小於之前的最小值3,則2也壓入輔助棧,則輔助棧的棧頂就是最小值。資料棧和輔助棧都彈出棧頂元素,此時位於輔助棧的棧頂元素依然是最小值。

templateclass stackwithmin

;template void stackwithmin::mypush(const t& value)

templatevoid stackwithmin::mypop()

}templatet stackwithmin::min()

void funtest1()

int main()

實現乙個返回最小值的棧

一 實現乙個棧,要求實現push 出棧 pop 入棧 min 返回最小值的操作 的時間複雜度為o 1 1 棧的基本操作入棧 push 出棧 pop 查詢棧頂 top 棧的元素個數 size 檢查棧是否為空 empty 我們知道入棧 push 和出棧 pop 時間複雜度本身就為o 1 所以只要讓min...

找到最大或最小的N個元素

在某個集合中找出 最大或最小的n個元素 heapq模組的nsmallest 和 nlargest是我們所需要的。如果只是找最大和最小max min更適合我們 更快 import heapq portfolio 可以接受key值 cheap heapq.nsmallest 3,portfolio,ke...

乙個最小堆的實現

如何實現最小堆,這是我按照書上寫的類以及定義的函式,那位大佬可以給我講一下如何在main函式中實現嗎?本人剛開始學習資料結構,如果有很低階的錯誤請擔待 類 pragma once include using namespace std class minheap typedef struct min...