3 栈
475 字
2 分钟
3 栈
栈是一种数据结构,只能从一端插入和删除操作,遵循着先进后出原则存储数据。

3.1 栈的初始化
def __init__(self): self.stack = [] # 栈列表 self.size = 20 # 栈大小 self.top = -1 # 栈顶位置3.2 元素进栈
# 元素进栈def push(self, element): self.stack.append(element) self.top += 13.3 元素出栈
# 元素出栈def pop(self): element = self.stack[-1] self.top -= 1 del self.stack[-1] return element这里可以直接调用pop函数,使用如下:
self.stack.pop() # 弹出栈顶元素3.4 获取栈顶元素
# 获取栈顶位置def getTop(self): return self.top这里也可以直接使用列表,使用如下:
self.stack[-1]3.5 清空栈
# 清空栈def empty(self): self.stack = [] self.top = -13.6 判断是否为空栈
# 判断是否为空栈def isEmpty(self): if self.top == -1: return True else: return False这里可以直接判断列表是否为空即可,使用如下:
return self.stack is []3.7 判断是否为满栈
# 是否为满栈def isFull(self): if self.top == self.size - 1: return True else: return False3.8 完整代码
#!usr/bin/env python# encoding:utf-8
class Stack: def __init__(self): self.stack = [] # 栈列表 self.size = 20 # 栈大小 self.top = -1 # 栈顶位置
# 元素进栈 def push(self, element): if self.isFull(): # 如果栈满,引发异常 raise StackException('Stack is full') else: self.stack.append(element) self.top += 1
# 元素出栈 def pop(self): if self.isEmpty(): # 如果栈为空,则引发异常 raise StackException('Stack is empty') else: element = self.stack[-1] self.top -= 1 del self.stack[-1] return element
# 获取栈顶位置 def getTop(self): return self.top
# 清空栈 def empty(self): self.stack = [] self.top = -1
# 判断是否为空栈 def isEmpty(self): if self.top == -1: return True else: return False
# 是否为满栈 def isFull(self): if self.top == self.size - 1: return True else: return False
class StackException(Exception): # 自定义异常类 def __init__(self, data): self.data = data
def __str__(self): return self.data
'''主函数'''if __name__ == '__main__': stack = Stack() # 创建栈 for i in range(10): stack.push(i) # 元素进栈 print('栈顶位置:', stack.getTop()) while not stack.isEmpty(): print(stack.pop()) # 元素出栈
stack.empty() # 清空栈 for i in range(21): stack.push(i) # 引发异常支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
相关文章智能推荐
1
9款最佳Python脚本:让工作自动化起来!
程技2023-10-22
2
6 小时 Python 入门
程技2023-09-25
3
Anaconda 入门指南
程技2023-09-25
4
Jupyter添加目录toc
程技2023-09-25
5
Jupyter notebook 使用指南
程技2023-09-25
随机文章随机推荐
樊笼










