-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdeque.py
78 lines (56 loc) · 2.94 KB
/
deque.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
from collections import deque
# Створення черги
queue = deque()
# Enqueue: Додавання елементів
queue.append('a')
queue.append('b')
queue.append('c')
print("Черга після додавання елементів:", list(queue))
# Dequeue: Видалення елемента
print("Видалений елемент:", queue.popleft())
print("Черга після видалення елемента:", list(queue))
# Peek: Перегляд першого елемента
print("Перший елемент у черзі:", queue[0])
# IsEmpty: Перевірка на порожнечу
print("Чи черга порожня:", len(queue) == 0)
# Size: Розмір черги
print("Розмір черги:", len(queue))
'''Черга після додавання елементів: ['a', 'b', 'c']
Видалений елемент: a
Черга після видалення елемента: ['b', 'c']
Перший елемент у черзі: b
Чи черга порожня: False
Розмір черги: 2'''
# Основні методи deque
# append(x) - додає елемент x в кінець черги.
# appendleft(x) - додає елемент x на початок черги.
# pop() - видаляє та повертає елемент з правого кінця черги. Якщо черга порожня, викидає виняток IndexError.
# popleft() - видаляє та повертає елемент з лівого кінця черги. Якщо черга порожня, викидає виняток IndexError.
tasks = [
{"type": "fast", "name": "Помити посуд"},
{"type": "slow", "name": "Подивитись серіал"},
{"type": "fast", "name": "Вигуляти собаку"},
{"type": "slow", "name": "Почитати книгу"}
]
from collections import deque
# Список завдань, де кожне завдання - це словник
tasks = [
{"type": "fast", "name": "Помити посуд"},
{"type": "slow", "name": "Подивитись серіал"},
{"type": "fast", "name": "Вигуляти собаку"},
{"type": "slow", "name": "Почитати книгу"}
]
# Ініціалізація черги завдань
task_queue = deque()
# Розподіл завдань у чергу відповідно до їх пріоритету
for task in tasks:
if task["type"] == "fast":
task_queue.appendleft(task) # Додавання на високий пріоритет
print(f"Додано швидке завдання: {task['name']}")
else:
task_queue.append(task) # Додавання на низький пріоритет
print(f"Додано повільне завдання: {task['name']}")
# Виконання завдань
while task_queue:
task = task_queue.popleft()
print(f"Виконується завдання: {task['name']}")