私の宿題は、次のアルゴリズムの最悪の場合の実行時間を決定することです。エンキューは簡単です。それはただ一定です(そうでなければ、私は愚かに感じるでしょう)
2つ目は紛らわしいです。昨日も同様の質問をしたのですが、とても参考になる回答がたくさんありました。がんばります。
Algorithm enqueue(o)
in stack.push(o)
Algorithm dequeue()
while (! in stack.isEmpty()) do // this just checks for an empty stack, so O(1)
out stack.push(in stack.pop()) // this do loop runs for as many times as values in the stack, so it is O(N)
if (out stack.isEmpty()) then
throw a QueueEmptyException // this is just an exception, so I assume it is O(1)
return_obj ← out stack.pop() // I think the rest of the program is linear.
// Although without actually coding it out, I'm not 100% sure I even understand what it does.
while (! out stack.isEmpty()) do
in stack.push(out stack.pop())
return return_obj;