用顺序表实现栈 --python描述
程序员文章站
2024-03-20 14:46:58
...
用顺序表来实现栈的功能
class Stack(object):
'''栈'''
def __init__(self):
#初始化一个顺序表来作为栈的容器,在python中可以是一个空列表
self.__list = []
def push(self,item):
'''添加一个新的元素item到栈顶'''
#对顺序表的操作,操作尾部的时间复杂度是O(1),所以使用append(),反之,使用链表实现栈时,就要操作头部
self.__list.append(item) #self.__list是list类的一个实例,可以调用列表基类的方法
def pop(self):
'''弹出栈顶元素'''
#也操作尾部
return self.__list.pop()
def peek(self):
'''返回栈顶元素'''
#如果列表不为空
if self.__list:
return self.__list[-1]
#如果列表为空,list[-1]不能对空列表操作
else:
return None
def is_empty(self):
'''判断栈是否为空'''
return self.__list == []
def size(self):
'''返回栈的元素个数'''
return len(self.__list)
if __name__ == "__main__":
s = Stack()
#压栈时是1 2 3 4
s.push(1)
s.push(2)
s.push(3)
s.push(4)
print(s.pop())
print(s.pop())
print(s.pop())
print(s.pop())
#弹栈时是4 3 2 1
上一篇: 线性表之顺序表基本操作实现