コード例 #1
0
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
コード例 #2
0
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]