mirror of
https://github.com/krahets/hello-algo.git
synced 2026-06-10 14:25:40 +08:00
* 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
45 lines
2.0 KiB
Swift
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)")
|
||
}
|
||
}
|