题: 用两个栈来实现一个队列,并实现队列的入队和出队的函数
# 如,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笔记