设计包含min函数的栈

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

设计包含min函数的栈。

定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。

要求函数min、push以及pop的时间复杂度都是O(1)。

栈中元素设两个域,一个记录元素的值,一个记录栈的最小值。

class Stack(object):

def __init__(self):

self.list=[]

self.top=-1

def push(self,x):

if self.top>=0:

if x<self.list[-1][1]:

self.list.append((x,x))

else:

self.list.append((x,self.list[-1][1]))

else:

self.list.append((x,x))

self.top+=1

def pop(self):

if self.top>=0:

self.top-=1

return self.list.pop()[0]

else:

raise IndexError,'pop from empty stack'

def min(self):

if self.top>=0:

return self.list[self.top][1]

else:

raise IndexError,'stack is empty'

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航