class MyQueue(object): def __init__(self): self.push_queue = Stack_Node() self.pop_queue = Stack_Node() def enqueue(self, data): if self.pop_queue.size > 0: while self.pop_queue.size > 0: self.push_queue.push(self.pop_queue.pop()) self.push_queue.push(data) def dequeue(self): if self.push_queue.size > 0: while self.push_queue.size > 0: self.pop_queue.push(self.push_queue.pop()) return self.pop_queue.pop() def peek(self): if self.push_queue.size > 0: while self.push_queue.size > 0: self.pop_queue.push(self.push_queue.pop()) return self.pop_queue.peek() def __str__(self): if self.push_queue.size > 0: return self.push_queue.__str__() else: return self.pop_queue.__str__()
class MyQueue(object): def __init__(self): self.push_queue = Stack_Node() self.pop_queue = Stack_Node() def enqueue(self,data): if self.pop_queue.size > 0: while self.pop_queue.size > 0: self.push_queue.push(self.pop_queue.pop()) self.push_queue.push(data) def dequeue(self): if self.push_queue.size > 0: while self.push_queue.size > 0: self.pop_queue.push(self.push_queue.pop()) return self.pop_queue.pop() def peek(self): if self.push_queue.size > 0: while self.push_queue.size > 0: self.pop_queue.push(self.push_queue.pop()) return self.pop_queue.peek() def __str__(self): if self.push_queue.size > 0: return self.push_queue.__str__() else: return self.pop_queue.__str__()
def sort_stack(stack): spare_stack = Stack_Node() while not stack.is_empty(): if spare_stack.is_empty(): spare_stack.push(stack.pop()) else: element = stack.pop() while not spare_stack.is_empty() and element > spare_stack.peek(): stack.push(spare_stack.pop()) spare_stack.push(element) return spare_stack