
常见python面试题:如何用python实现栈(Stack)的 *** 作?
什么是栈(Stack)栈是一个很基本的数据结构,也是非常重要的数据结构,栈的特点:“先进后出,后进先出”,举个生活中最常见的例子
d夹大家并不陌生,先按进去的最后才打出来,最后按进去的最先打出来,这就是栈的数据结构。
下图是详细的栈结构
所有的 *** 作只在一端进行(如:d夹),有2个最基本的 *** 作,入栈(子d按进去) 和 出栈 (子dd出来)。
栈有两端,最底端叫栈底,最上端叫栈顶。
弄清楚了栈的基本结构和 *** 作后,就可以用python写一个栈(Stack)
定义抽象数据类型栈的各种 *** 作:
- Stack():创建一个空栈,不包含任何数据项
- push(item):将item加入栈顶,无返回值
- pop():将栈顶数据项移除,并返回所移除的值,栈被修改
- peek():“窥视”栈顶数据项,返回栈顶的数据项但不移除,栈不被修改
- isEmpty():返回栈是否为空栈
- size():返回栈中有多少个数据项
class Stack(object):
def __init__(self):
self.items = []
def is_empty(self):
"""判断是否为空集"""
return self.items == []
def push(self, item):
"""添加新元素到栈顶"""
self.items.append(item)
def pop(self):
"""删除栈顶元素"""
return self.items.pop()
def peek(self):
"""窥探栈顶元素"""
return self.items[-1]
def size(self):
"""查看栈的大小"""
return len(self.items)
if __name__ == '__main__':
stack = Stack()
print(stack.is_empty())
stack.push(2) # 入栈
stack.push(3) # 入栈
print(stack.size())
print(stack.peek())
stack.pop() # 出栈
print(stack.size())
运行结果
True 2 3 1
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)