一、队列
class Queue:
def __init__(self, size):
self.size = size
self.front = -1
self.rear = -1
self.queue = []
def enqueue(self, ele):
if self.isfull():
raise Exception("queue is full")
else:
self.queue.append(ele)
self.rear = self.rear + 1
def dequeue(self):
if self.isempty():
raise Exception("queue is empty")
else:
self.front = self.front + 1
return self.queue[self.front]
def isfull(self):
return self.rear - self.front + 1 == self.size
def isempty(self):
return self.front == self.rear
q = Queue(10)
for i in range(3):
q.enqueue(i)
for i in range(3):
print(q.dequeue())
print(q.isempty())
二、堆栈
class Stack:
def __init__(self, size):
self.size = size
self.stack = []
self.top = -1
def push(self, ele):
if self.isfull():
raise Exception("out of range")
else:
self.stack.append(ele)
self.top = self.top + 1
def pop(self):
if self.isempty():
raise Exception("stack is empty")
else:
self.top = self.top - 1
return self.stack.pop()
def isfull(self):
return self.top + 1 == self.size
def isempty(self):
return self.top == -1
s = Stack(20)
for i in range(3):
s.push(i)
for i in range(3):
print(s.pop())
print(s.isempty())
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)