702.67K
Категория: ПрограммированиеПрограммирование

Очереди, стеки, дженерики

1.

ОЧЕРЕДИ, СТЕКИ,
ДЖЕНЕРИКИ

2.

ОПРЕДЕЛЕНИЕ ДЖЕНЕРИКОВ
Дженерики (обобщения) – инструмент языка,
позволяющий решить проблему жесткой типизации
(определения типов) данных.
2

3.

ПРИМЕР ИСПОЛЬЗОВАНИЯ
Пусть имеется класс
следующим образом.
3
Person,
который
определен

4.

Однако для идентификатора (Id) может использоваться и
строковое значение. На момент создания класса можно точно не
знать, что лучше выбрать для хранения Id - строку или число.
Для решения проблемы можно использовать тип object.
4

5.

Проблема при работе с типом object заключается в том, что
приходится сталкиваться с такими явлениями как упаковка
(boxing) и распаковка (unboxing), которые приводят к снижению
производительности и могут вызвать
проблему безопасности
типов.
Решением
является
использование
обобщенного
(универсального) типа
5

6.

6

7.

ОПРЕДЕЛЕНИЕ ОЧЕРЕДИ
Очередь (queue) – это структура данных, которая
работает по принципу FIFO (First In First Out - Первый
пришел, первый вышел).
При добавлении новый элемент помещается в конец
очереди или ее хвост, а удаление идет с начала очереди
или головы.
7

8.

РЕАЛИЗАЦИЯ ОЧЕРЕДИ
8

9.

!Enqueue (добавить) и Dequeue(удалить) - основные методы при работе с
очередью.
9

10.

10

11.

ОПРЕДЕЛЕНИЕ СТЕКА
Стек (stack) – структура данных, которая работает по
принципу LIFO (Last In FIrst Out - Последний пришел,
первый вышел).
11

12.

РЕАЛИЗАЦИЯ СТЕКА
12

13.

!Push (добавить) и Pop (удалить) - основные методы при работе со стеком.
13

14.

14

15.

МАТЕРИАЛЫ ДЛЯ ИЗУЧЕНИЯ
1. Очередь (https://metanit.com/sharp/algoritm/2.5.php)
2. Стек (https://metanit.com/sharp/algoritm/2.3.php
3. https://metanit.com/sharp/algoritm/2.4.php)
4. Дженерики (https://metanit.com/sharp/tutorial/3.12.php)
15

16.

СПАСИБО ЗА ВНИМАНИЕ!
16
English     Русский Правила