实现一个栈,要求实现出栈、入栈、返回最小值的时间复杂度为O(1)

  由栈的一些基本操作,很容易使出栈和入栈的时间复杂度为O(1),但是由于入栈数据元素顺序不一定是有序的,故不能直接实现返回最小值的时间复杂度为O(1)。下面提供两种方法: (一)设置一个特殊的数据结构类型,包括两个栈_data栈和_mindata栈,_data栈和原来的栈操作相同,存储所有的数据,_mindata栈用来存储最小值。 typedef struct Minstack { Stack
相关文章
相关标签/搜索