Similar presentations:
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) E8ECB?ь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@