Files
Yudong Jin 772183705e Add ru version (#1865)
* Add Russian docs site baseline

* Add Russian localized codebase

* Polish Russian code wording

* Update ru code translation.

* Update code translation and chapter covers.

* Fix pythontutor extraction.

* Add README and landing page.

* placeholder of profiles

* Use figures of English version

* Remove chapter paperbook
2026-03-28 04:24:07 +08:00

45 lines
2.0 KiB
Swift

/**
* File: deque.swift
* Created Time: 2023-01-14
* Author: nuomi1 (nuomi1@qq.com)
*/
@main
enum Deque {
/* Driver Code */
static func main() {
/* Инициализация двусторонней очереди */
// В Swift нет встроенного класса двусторонней очереди, поэтому Array можно использовать как двустороннюю очередь
var deque: [Int] = []
/* Добавление элемента в очередь */
deque.append(2)
deque.append(5)
deque.append(4)
deque.insert(3, at: 0)
deque.insert(1, at: 0)
print("Двусторонняя очередь deque = \(deque)")
/* Доступ к элементу */
let peekFirst = deque.first!
print("Первый элемент peekFirst = \(peekFirst)")
let peekLast = deque.last!
print("Последний элемент peekLast = \(peekLast)")
/* Извлечение элемента из очереди */
// При использовании Array для имитации popFirst имеет сложность O(n)
let popFirst = deque.removeFirst()
print("Извлеченный из головы элемент popFirst = \(popFirst), deque после извлечения из головы = \(deque)")
let popLast = deque.removeLast()
print("Извлеченный из хвоста элемент popLast = \(popLast), deque после извлечения из хвоста = \(deque)")
/* Получение длины двусторонней очереди */
let size = deque.count
print("Длина двусторонней очереди size = \(size)")
/* Проверка, пуста ли двусторонняя очередь */
let isEmpty = deque.isEmpty
print("Пуста ли двусторонняя очередь = \(isEmpty)")
}
}