摘要:
定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素,要求函数min、push以及pop的时间复杂度都是O(1)主要难点:将当前最小的元素min出栈之后,如何快速找到下一个最小的元素?因此需要一个辅助栈,每次push一个新元素的时候,同时将最小元素push到辅助栈中;每次pop一个元素出栈的时候,同时pop辅助栈。考虑到栈元素的类型可能是复杂的数据结构,在辅助栈中用最小元素的位置将能减少空间消耗。代码: 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 template 7 class... 阅读全文