class Queue(): def __init__(self): self.s1 = Stack() self.s2 = Stack() def Push(self, i): self.s1.Push(i) def Pop(self): while self.s1.IsEmpty() == False: self.s2.Push(self.s1.Pop()) outdat = self.s2.Pop() while self.s2.IsEmpty() == False: self.s1.Push(self.s2.Pop()) return outdat def Peek(self): while self.s1.IsEmpty() == False: self.s2.Push(self.s1.Pop()) outdat = self.s2.Peek() while self.s2.IsEmpty() == False: self.s1.Push(self.s2.Pop()) return outdat def IsEmpty(self): return self.s1.IsEmpty() def __repr__(self): return str(self.s1)[::-1]
def SortStack(s): temp = Stack() while s.IsEmpty() == False: if temp.IsEmpty(): temp.Push(s.Pop()) if s.Peek() > temp.Peek(): hold = s.Pop() s.Push(temp.Pop()) s.Push(hold) elif s.Peek() <= temp.Peek(): temp.Push(s.Pop()) return temp