以下的栈可以换成队列,最大值可以换成最小值。
当要求在栈中,在O(1)时间内求出最大值时,核心思想就是在维护一般栈的功能时,加上另外一些信息。例如:
在栈的节点信息中,除了保存的数据外,在加上一个地址信息,保存下一个比它小的节点位置。并在栈中维护一个类似头指针的变量,通过这个变量就可以直接得到栈中的最大值。
1、入栈:在对栈进行入栈时,元素入栈的同时,进行最大元素链的更新;
2、出栈:而在出栈时,必须先更新最大元素链,然后再把此元素从栈中去除。
3、取最大值:根据栈中维护的一个指针直接获取。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。