【题目】定义栈的数据结构,要求添加一个min 函数,能够得到栈的最小元素。要求函数min、push以及 pop的时间复杂度都是 O(1)。
【思路】min值应该是栈顶到栈底的最小值,栈顶元素必须知道最小值是什么,才能达到O(1)要求,故在栈元素中增加一个值记录当前最小值,在push过程中更新加入节点的min值。实现过程中使用链表动态申请内存。
【代码】
本文介绍了一种特殊栈的数据结构实现,该栈除了具备基本的push和pop操作外,还提供了一个min函数用于返回栈内最小元素,且所有操作的时间复杂度均为O(1)。通过在每个节点中额外存储从该节点到栈底的最小值来实现这一功能。
【题目】定义栈的数据结构,要求添加一个min 函数,能够得到栈的最小元素。要求函数min、push以及 pop的时间复杂度都是 O(1)。
【思路】min值应该是栈顶到栈底的最小值,栈顶元素必须知道最小值是什么,才能达到O(1)要求,故在栈元素中增加一个值记录当前最小值,在push过程中更新加入节点的min值。实现过程中使用链表动态申请内存。
【代码】
751

被折叠的 条评论
为什么被折叠?