练习:经典问题--用两个栈实现队列

发布时间 2023-09-16 17:05:14作者: 三天乐趣
题: 用两个栈来实现一个队列,并实现队列的入队和出队的函数
# 如,hello的顺序入队,也会hello的顺序出队
 1 class queue():
 2     # 定义两个栈,即两个空列表;一个输出用的空字符串
 3     def __init__(self):
 4         self.stack1=[]
 5         self.stack2=[]
 6         self.strp=''
 7     # 编写入栈操作
 8     def push_(self,stnum):
 9         self.stack1.append(stnum)
10     # 编写出队操作
11     def pop_(self):
12         # 当栈2为空时
13         if len(self.stack2)==0:
14             while self.stack1:
15                 # 将栈1的元素进行出栈,并放入到栈2中
16                 self.stack2.append(self.stack1.pop())
17         # 返回栈2的置顶元素
18         return self.stack2.pop()
19 
20     def print_(self,stnum):
21         for i in stnum:
22             # 使用定义的入栈函数
23             self.push_(i)
24         for _ in range(len(stnum)):
25             # 使用定义的出栈函数,赋值给输出的字符串
26             self.strp+=self.pop_()
27         return self.strp
28 
29 # eg.
30 str1='12345678'
31 queue=queue()
32 p = queue.print_(str1)
33 print(p) # 12345678

2023-9-16笔记