1.57M

Modelirovanie-steka-i-ocheredi-v-yazyke-Python

1.

М>45л8D>ва=85 EF5ка 8
>ч5D548 в я7ык5 Python
Ц5?P: >5NOA=8BP B5>@8N, ?>>474BP ?@4>B8G5A>85 @54?874F88 6 Python 8
A>?>AB468BP 64@84=BO 6O5>@4 4?O @54?P=OE 7444G.

2.

План презентации
Глава 1
Глава 2
Глава 3
Теоретические основы: понятие
Реализации в Python: списки,
Практика: алгоритмы, ошибки,
структуры данных, LIFO и FIFO
классы, deque, queue
критерии выбора
Заключение
Рекомендации и выводы

3.

Глава 1 — Теоретические основы
Структуры данных упорядочивают и хранят данные для эффективного доступа. Стек (LIFO) — последний вошёл, первый
вышел; очередь (FIFO) — первый вошёл, первый вышел. Понимание правил доступа критично при выборе реализации и
анализе сложности.

4.

Стек — клNчевые ?>=OтиO
ОC9D4F<<: push (8B546<FP), pop (G84?<FP), peek (CDBE@BFD9FP)
АE<@CFBF<>4: B5OGAB O(1) 8?я BC9D4F<= A4 69DH<A9
СF9A4D<<: BF>4F BC9D4F<=, C4DE<A7, CDB69D>4 E>B5B>

5.

Очередь — ключевые понятия
Операции: enqueue (вставить), dequeue (извлечь), front/peek
Асимптотика: амортизированно O(1) при правильной структуре
Сценарии: обработка задач, BFS, планирование

6.

Гл464 2 — Ре4л874ц88 6 Python (о57ор)
С?<E>к Python к4к
EF5к
С>5EF65==ы= кл4EE
Stack
collections.deque
М>4Gль queue
Д6GA4CD46?9AA4S BK9D98P E
ПBFB>B59;BC4EAO9
append() < pop() 84RF
ИA>4CEG?<DG9F CB6989A<9,
O(1) 8?S append/pop E?964 <
EFDG>FGDO (Queue, LifoQueue,
CDBEFB= EF9>. БOEFDB 8?S
CB;6B?S9F >BAFDB?<DB64FP
ECD464 — BCF<@4?PAB 8?S
PriorityQueue) 8?S
BC9D4J<= A4 >BAJ9, AB pop(0)
API < 8B546<FP CDB69D><,
BK9D989= < QHH9>F<6AOI
@AB7BCBFBKABEF<;
8BDB7BEFBSщ — O(n).
?B7<DB64A<9, B7D4A<K9A<S
BC9D4J<= E B59<I EFBDBA.
6AGFD9AA<9 5?B><DB6>< <
D4;@9D4.
BCJ<< B:<84A<S.

7.

Глава 3 — Практическое применение: проверка
скобок
Алгоритм: пройти по строке, при открывающей скобке — push, при закрывающей — сравнить с вершиной и pop.
Использовать список или deque; важны проверки пустой структуры и корректного соответствия видов скобок. Сложность
O(n) по времени и O(n) по памяти.

8.

ПB8Eк в ш8D8Aу (BFS) E
8ECB?ь7BваA85@ Bч5D548
G5@54P E@4=8B D@>=B 6>;=O >5E>44. СB4=44@B=4O AE5<4:
?><5AB8BP AB4@B>6CN 65@H8=C, 74B5< 876;5:4BP 8
4>546;OBP A>A5459. >4E>4 B@55C5B >B<5B:8 ?>A5Iё==OE
65@H8=; A;>6=>ABP O(V + E).
Р5:><5=4C5<ая AB@C:BC@а: collections.deque 4;я
вOA>:>9 ?@>87в>48B5;P=>AB8.

9.

Типичные ошибки и критерии выбора
реализации
Частые ошибки
Критерии выбора
Использование pop(0) на списке для очереди — O(n)
Производительность операций (амортизированное
Игнорирование потокобезопасности в
vs худшее)
многопоточных задачах
Потребность в потокобезопасности
Отсутствие обработки граничных случаев (пустая
Читаемость и поддерживаемость кода
структура)

10.

Зак?юч5Aи5 и
р5кB@5A4ации
Д?S CDBEFOE EFQ>B6 <
B8ABA4CD46?9AAOE BC9D4F<= A4 >BAF9
— list E append/pop. Д?S BG9D989= <
BC9D4F<= E B59<E EFBDBA —
collections.deque. Д?S @AB7BCBFBGABEF<
<ECB?P;G=F9 queue.Queue <?<
LifoQueue. ПD< A9B5EB8<@BEF<
>BAFDB?S < D4EH<D9A<S API D94?<;G=F9
EB5EF69AAO= >?4EE.
Т9EF<DG=F9 A4 7D4A<GAOE 84AAOE <
<;@9DS=F9 CDB<;6B8<F9?PABEFP
ДB>G@9AF<DG=F9 CB6989A<9
(FIFO/LIFO, 5?B><DGRI<9 BC9D4F<<)
ВO5<D4=F9 EFDG>FGDG, <EEB8S <;
FD95B64A<= CB E?B:ABEF< < CBFB>4@
English     Русский Rules