【题目】定义栈的数据结构,要求添加一个min 函数,能够得到栈的最小元素。要求函数min、push以及 pop的时间复杂度都是 O(1)。
【思路】min值应该是栈顶到栈底的最小值,栈顶元素必须知道最小值是什么,才能达到O(1)要求,故在栈元素中增加一个值记录当前最小值,在push过程中更新加入节点的min值。实现过程中使用链表动态申请内存。
【代码】
【题目】定义栈的数据结构,要求添加一个min 函数,能够得到栈的最小元素。要求函数min、push以及 pop的时间复杂度都是 O(1)。
【思路】min值应该是栈顶到栈底的最小值,栈顶元素必须知道最小值是什么,才能达到O(1)要求,故在栈元素中增加一个值记录当前最小值,在push过程中更新加入节点的min值。实现过程中使用链表动态申请内存。
【代码】