2023-12-08 队列与栈
2023-12-13 21:00:11
栈与队列一
232. 用栈实现队列
思路:对于使用栈实现队列的话,必须使用两个共同来维护使得每次都能先进先出!
class MyQueue:
def __init__(self):
# 需要建立两个list来维护出栈以及进栈
self.stack_in = []
self.stack_out = []
def push(self, x: int) -> None:
self.stack_in.append(x)
def pop(self) -> int:
if self.empty():
return None
# 判断出栈是否有元素
if self.stack_out:
return self.stack_out.pop()
else:
for i in range(len(self.stack_in)):
self.stack_out.append(self.stack_in.pop())
return self.stack_out.pop()
def peek(self) -> int:
# 使用list来做,末尾就头 为什么使用pop捏?是为了避免反复进行空的判断!不要代码冗余
ans = self.pop()
self.stack_out.append(ans)
return ans
def empty(self) -> bool:
# 只需要两个栈其中一个不为零就可
return not (self.stack_in or self.stack_out)
225. 用队列实现栈
思路:这个比较简单了,简单维护一个队里就可以了!
class MyStack:
def __init__(self):
self.queue = []
def push(self, x: int) -> None:
self.queue.append(x)
def pop(self) -> int:
if self.empty():
return None
return self.queue.pop()
def top(self) -> int:
# 直接弹不需要判断为空的
asn = self.pop()
self.queue.append(asn)
return asn
def empty(self) -> bool:
return not self.queue
文章来源:https://blog.csdn.net/niuzai_/article/details/134936991
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!