Мне недавно задали этот вопрос:
Как получить первые 5 элементов в стеке?
Стек, как вы знаете, является последним первым полученным
Интервьюер запросил алгоритм / псевдокод с высокой производительностью для стека только с 2 операциями, Pop () и Push ().
Мой тривиальный ответ:
Stack S2;
foreach (item in stack S1)
{
object item = S1.Pop();
S2.push(item)
}
for (int i=0 ; i<5 ; i++)
Printf(S2.Pop());
Он сказал мне, что у нас есть другое решение с более высокой производительностью, но я не могу его найти.