Python的栈和队列实现
2024-10-14 10:45:40
栈
class Node:
def __init__(self, data=None):
self.next = None
self.data = data
class Stack:
def __init__(self):
'''初始化'''
self.top = None
self.size = 0
def push(self, data):
'''将元素压入栈内'''
node = Node(data)
if self.top:
node.next = self.top
self.top = node
else:
self.top = node
self.size += 1
def pop(self):
'''弹出栈顶元素'''
if self.top:
data = self.top.data
self.size -= 1
if self.top.next:
self.top = self.top.next
else:
self.top = None
return data
else:
return None
def peek(self):
'''查看栈顶元素'''
if self.top:
return self.top.data
else:
return None
队列
class Node:
def __init__(self, data=None, next=None, prev=None):
self.data = data
self.next = next
self.prev = prev
class Queue:
def __init__(self):
self.head = None
self.tail = None
self.size = 0
def enqueue(self, data):
'''入队'''
new_node = Node(data, None, None)
if self.head is None:
self.head = new_node
self.tail = self.head
else:
new_node.prev = self.tail
self.tail.next = new_node
self.tail = new_node
self.size += 1
def dequeue(self):
'''出队'''
current = self.head
if self.size == 1:
self.size -= 1
self.head = None
self.tail = None
elif self.size > 1:
self.head = self.head.next
self.head.prev = None
self.size -= 1
def iter(self):
'''遍历队列'''
current = self.head
while current:
data = current.data
current = current.next
yield data
最新文章
- .htaccess添加Header set Cache-Control报错500
- IOS越狱开发之——进程通讯
- Android 优秀UI控件 ---- FlowingDrawer
- poj2392 多重背包
- java接口相关例题
- SQL命令入门。
- Jenkins五 配置tomcat
- Adding a custom jar as a maven dependency
- .net core 中使用ef 访问mysql
- Django之Template
- Golang 函数
- XMLHttpRequest.withCredentials
- 【跨域】jsonp跨域实现方法
- c++ 整数和字符串的转化
- jQuery多媒体播放器插件jQuery Media Plugin使用方法
- io流之转换流InputStreamReader、OutputStreamWriter
- Professional Books
- 洛谷 P1987 摇钱树
- HDP安全之集成kerberos/LDAP、ranger(knox自带LDAP)
- 索引选择性与cardinality
热门文章
- Luogu2467 SDOI2010 地精部落 DP
- 验证码处理类:UnCodebase.cs + BauDuAi 读取验证码的值(并非好的解决方案)
- [Oracle][Standby][PDB]在PDB中修改参数,设置范围为 SPFILE,报 ORA-65099错误
- 【php增删改查实例】第十八节 - login.php编写
- Python 学习 第七篇:函数1(定义、调用和变量的作用域)
- 收藏pdf 链接
- VS2015 导航栏 查看每个cpp文件中类以及类成员函数的框框
- String系列-----String
- (html4与html5分别实现)用一个表单向php界面提交不同的命令
- From CORBA technology To Thrift technology