Python實現"用佇列實現棧"的一種方法
阿新 • • 發佈:2018-12-11
使用佇列實現棧的下列操作:
- push(x) -- 元素 x 入棧
- pop() -- 移除棧頂元素
- top() -- 獲取棧頂元素
- empty() -- 返回棧是否為空
Example:
MyStack stack = new MyStack(); stack.push(1); stack.push(2); stack.top(); // returns 2 stack.pop(); // returns 2 stack.empty(); // returns false
注意:
- 你只能使用佇列的基本操作-- 也就是
push to back
,peek/pop from front
size
, 和is empty
這些操作是合法的。 - 你所使用的語言也許不支援佇列。 你可以使用 list 或者 deque(雙端佇列)來模擬一個佇列 , 只要是標準的佇列操作即可。
- 你可以假設所有操作都是有效的(例如, 對一個空的棧不會呼叫 pop 或者 top 操作)。
1:用列表模擬棧,和相關棧操作
class MyStack(object): def __init__(self): """ Initialize your data structure here. """ self.queue = [] def push(self, x): """ Push element x onto stack. :type x: int :rtype: void """ self.queue.append(x) def pop(self): """ Removes the element on top of the stack and returns that element. :rtype: int """ if len(self.queue)!=0: temp = self.queue[-1] del self.queue[-1] return temp else: return False def top(self): """ Get the top element. :rtype: int """ if len(self.queue)!=0: return self.queue[-1] else: return False def empty(self): """ Returns whether the stack is empty. :rtype: bool """ if len(self.queue)==0: return True else: return False