2
我一直在討論一些編碼面試問題。 我想知道如何在Python中使用兩個堆棧來實現一個隊列。爲了理解這兩種數據結構,我正在研究算法問題以實現一個帶有兩個堆棧的隊列。 我有以下:用2個堆棧python實現一個隊列並分析運行時間
class QueueTwoStacks:
def __init__(self):
self.in_stack = []
self.out_stack = []
def enqueue(self, item):
self.in_stack.append(item)
def dequeue(self):
if len(self.out_stack) == 0:
# Move items from in_stack to out_stack, reversing order
while len(self.in_stack) > 0:
newest_in_stack_item = self.in_stack.pop()
self.out_stack.append(newest_in_stack_item)
# If out_stack is still empty, raise an error
if len(self.out_stack) == 0:
raise IndexError("Can't dequeue from empty queue!")
return self.out_stack.pop()
,這是什麼一個運行時分析?
爲什麼我們可以爲mm函數調用獲得O(m)O(m)運行時。
我假設有一個堆棧實現,它給出O(1)O(1)時間推和流行?
我很感謝您對此的解釋。謝謝。