数据结构-栈(python)

导读:本篇文章讲解 数据结构-栈(python),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

栈抽象数据类型由下面的结构和操作定义。如前所述,栈是元素的有序集合,添加操作与移
除操作都发生在其顶端。栈的操作顺序是 LIFO,它支持以下操作。
 Stack()创建一个空栈。它不需要参数,且会返回一个空栈。
 push(item)将一个元素添加到栈的顶端。它需要一个参数 item,且无返回值。
 pop()将栈顶端的元素移除。它不需要参数,但会返回顶端的元素,并且修改栈的内容。
 peek()返回栈顶端的元素,但是并不移除该元素。它不需要参数,也不会修改栈的内容。
 isEmpty()检查栈是否为空。它不需要参数,且会返回一个布尔值。
 size()返回栈中元素的数目。它不需要参数,且会返回一个整数。

s.isEmpty() [] True
s.push(4) [4] 
s.push('dog') [4, 'dog'] 
s.peek() [4, 'dog'] 'dog'
s.push(True) [4, 'dog', True] 
s.size() [4, 'dog', True] 3
s.isEmpty() [4, 'dog', True] False
s.push(8.4) [4, 'dog', True, 8.4] 
s.pop() [4, 'dog', True] 8.4
s.pop() [4, 'dog'] True
s.size() [4, 'dog'] 2
class Stack: 
	def __init__(self): 
		self.items = [] 
	def isEmpty(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[len(self.items)-1]
	def size(self): 
		return len(self.items)

值得注意的是,也可以选择将列表的头部作为栈的顶端。不过在这种情况下,便无法直接使
用 pop 方法和 append 方法,而必须要用 pop 方法和 insert 方法显式地访问下标为 0 的元素,
即列表中的第 1 个元素。代码清单 3-2 展示了这种实现。

class Stack: 
	 def __init__(self): 
		self.items = [] 
	def isEmpty(self): 
		return self.items == [] 
	def push(self, item): 
		self.items.insert(0, item) 

	def pop(self): 
		return self.items.pop(0) 
	def peek(self): 
		return self.items[0] 
	def size(self): 
		return len(self.items)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/76921.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!