包含min函数的栈
题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的函数。在该栈中,调用min,push,pop的时间复杂度都为O(1)。
#include<iostream>#include<vector>usingnamespacestd;template<classT>classStack{public:voidpush(Tdata){if(_array.size()==0){_array.push_back(data);_array1.push_back(0);}else{intindex=_array1.size()-1;if(data>=_array[index]){_array.push_back(data);_array1.push_back(_array1[index]);}else{_array.push_back(data);_array1.push_back(index+1);}}}voidpop(){intindex=_array.size()-1;_array[index]=NULL;_array1[index]=NULL;}TMin(){intend=_array1.size()-1;intindex=_array1[end];return_array[index];}private:vector<T>_array;vector<int>_array1;};voidtest(){Stack<int>s1;s1.push(3);s1.push(7);s1.push(4);s1.push(1);s1.push(8);s1.push(0);cout<<s1.Min()<<endl;}intmain(){test();system("pause");return0;}
结果:
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。