Стек - это в основном массив, линейная последовательность элементов в четко определенном порядке. Допустим, у нас есть массив символов следующим образом (индексы на основе 1 расположены над элементами):
1 2 3 4 5 6
A Q Z G N K
«Вращение» - это обычная операция над последовательностями элементов в информатике, во многом похожая на «сдвиг», «сортировку» и т. Д. (Вот почему руководство Lua не удосуживается подробно остановиться на том, что означает «вращать» элементы). Поворот этого массива влево или вправо на некоторое число N
означает сдвиг всех элементов влево / вправо на N
элементов и размещение элементов, сдвинутых от конца массива в новой пустой части, в их последовательном порядке.
Таким образом, если мы выполним правый поворот указанного выше массива на 2, вы получите следующее:
1 2 3 4 5 6
N K A Q Z G
Элементы 1-4 в оригинале стали элементами 3-6, а элементы 5-6 в оригинале стали 1-2 в новой версии. Вращение влево работает аналогично.
Вращение части массива просто означает выполнение этой операции, но оставляя другие части массива в покое. Поэтому, если вы возьмете исходный вышеупомянутый массив и сделаете левый поворот на 3 элемента, но затронув только элементы 3-6, вы получите следующее:
1 2 3 4 5 6
A Q K Z G N