剑指offer-面试题30-包含min函数的栈-栈
Posted buaazhhx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer-面试题30-包含min函数的栈-栈相关的知识,希望对你有一定的参考价值。
/* 题目: 定义栈的数据结构,实现一个能够得到栈的最小元素的min函数。 */ /* 思路: 错误思路:每次保存当前最小的元素,如果当前最小元素弹出,最小元素是谁? 正确思路:两个栈,一个栈保存数据,另一个栈用于存储当前最小元素。 */ #include <iostream> #include<cstdlib> #include<stack> using namespace std; stack<int> m_data; stack<int> m_min; void push(int value) { m_data.push(value); int minVal = value; if(!m_min.empty()){ int temp = m_min.top(); if(temp < value){ minVal = temp; } } m_min.push(minVal); } void pop() { if(!m_data.empty()){ m_data.pop(); m_min.pop(); } } int top() { return m_data.top(); } int min() { return m_min.top(); } int main() { /* TreeNode *node7 = new TreeNode(7); TreeNode *node6 = new TreeNode(4); TreeNode *node5 = new TreeNode(3); TreeNode *node4 = new TreeNode(9); TreeNode *node3 = new TreeNode(7); TreeNode *node2 = new TreeNode(8); TreeNode *node1 = new TreeNode(8); node1->left = node2; node1->right = node3; node2->left = node4; node2->right = node5; node5->left = node6; node5->right =node7; TreeNode *node31 = new TreeNode(2); TreeNode *node21 = new TreeNode(9); TreeNode *node11 = new TreeNode(8); node11->left = node21; node11->right = node31; cout<<Mirror(node1)<<endl;*/ return 0; }
以上是关于剑指offer-面试题30-包含min函数的栈-栈的主要内容,如果未能解决你的问题,请参考以下文章