0

また、ポインタは使用できません

この質問はインタビューの質問であり、スタックADTが与えられ、キューでの操作が要求されるため、私には混乱しているように聞こえます...

4

1 に答える 1

0

キューエンキューでは、常にデータを最も右にある位置に挿入します。スタックでは、データも最後(上)に挿入されます。したがって、スタックでのキューイング操作のエミュレートは難しくありません。1回のpush()操作で十分です。問題はデキュー操作にあります。デキューをエミュレートする1​​つの方法は、スタックの2つのインスタンスを使用し、デキュー要求で空のスタック1をスタック2に入れ、スタック2からポップして、スタック1をstack2で復元することです。

エンキュー操作の時間計算量はO(1)(キューの場合と同じ)ですが、デキュー操作の時間計算量はO(n)になります。ここで、nは、キューのO(1)より大きいスタック内のアイテムの数です。 。

于 2012-07-13T11:54:05.810 に答える