整站优化推广,公司网站开发步骤,如何给网站绑定域名,游艇网站建设方案目录 题目
代码实现
输出 题目
定义栈的数据结构#xff0c;要求添加一个min 函数#xff0c;能够得到栈的最小元素。
要求函数min、push 以及pop 的时间复杂度都是O(1)。 代码实现
#include iostreamtemplatetypename Tclass stack
{
public:stack() {…目录 题目
代码实现
输出 题目
定义栈的数据结构要求添加一个min 函数能够得到栈的最小元素。
要求函数min、push 以及pop 的时间复杂度都是O(1)。 代码实现
#include iostreamtemplatetypename Tclass stack
{
public:stack() {pdata new T[max_size];pmindata new T[max_size];}~stack() {if(pdata){delete[] pdata;}if(pmindata){delete[] pmindata;}}T min(void){return pmindata[size - 1];}void push(T data){*(pdata size) data;if(size 0){pmindata[0] data;}else{if(data pmindata[size - 1]){pmindata[size] data;}else{pmindata[size] pmindata[size - 1];}}size;}T pop(void){size--;return *(pdata size);}private:const int max_size 1000;int size 0;T* pdata;T* pmindata;
};int main()
{stackint m_stack;m_stack.push(10);m_stack.push(15);m_stack.push(13);m_stack.push(7);m_stack.push(6);std::cout m_stack.min() std::endl;std::cout m_stack.pop() std::endl;std::cout m_stack.min() std::endl;std::cout m_stack.pop() std::endl;std::cout m_stack.min() std::endl;return 0;
}
输出