首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

兑现一个Stack,push和pop函数,以及一个输出当前栈内最小值的min函数,要求这三个函数都是O(1)

2013-03-26 
实现一个Stack,push和pop函数,以及一个输出当前栈内最小值的min函数,要求这三个函数都是O(1)实现一个Stack

实现一个Stack,push和pop函数,以及一个输出当前栈内最小值的min函数,要求这三个函数都是O(1)
实现一个Stack,push和pop函数,以及一个输出当前栈内最小值的min函数,要求这三个函数都是O(1)


显然,需要时间换空间

栈 A, 辅助栈 minStack,存储最小元素,显然,从栈底到栈顶,非递增

Elem getTop(minStack) {    return get(minStack);}void push(element) {    if(element <= getTop()) {        push(element, B);    }    push(element, A);}void pop() {    Elem element = pop(A);    if(element == getTop()) {        pop(B);    }}Element getMin() {    return getTop(minStack);}

热点排行