- •3. Ооп. Методы, перегрузка, переопределение.
- •4. Ооп. Полиморфизм.
- •5. Методы класса. Конструкторы. Виды конструкторов. Статические методы и поля.
- •6. Понятие сложности алгоритма. Типовые виды алгоритмической сложности.
- •7. Исключения (try, catch, finally).
- •8. Интерфейсы, применение предназначения.
- •9. Generic типы.
- •10. Ограничения Generic типов.
- •11. Структуры данных. Динамический массив.
- •12. Структуры данных. Список.
- •13. Структуры данных. Двунаправленный список.
- •14. Структуры данных. Хеш-таблица.
- •15. Структуры данных. Стек.
- •16. Структуры данных. Очередь.
- •17. Коллекции в c#, описать какие структуры данных реализуют.
- •18. Матрицы преобразований.
- •19. Основы теории графов, что это такое, применение.
- •20. Граф. Способы задания графа.
16. Структуры данных. Очередь.
Структура данных (англ. data structure) — программная единица, позволяющая хранить и обрабатывать множество однотипных и/или логически связанных данных в вычислительной технике. Для добавления, поиска, изменения и удаления данных структура данных предоставляет некоторый набор функций, составляющих её интерфейс. Назначение структур: повышении эффективности и производительности программ. Структуры относятся к типам значений, и поэтому ими можно оперировать непосредственно, а не по ссылке. Следовательно, для работы со структурой вообще не требуется переменная ссылочного типа, а это означает в ряде случаев существенную экономию оперативной памяти.
Очередь – это частный случай списка, добавление элементов в который выполняется в один
конец – хвост, а выборка производится с другого конца – головы. Других операции с очередью нет. При выборке элемент исключается из очереди. Очередь реализует принцип обслуживания FIFO (первым пришел первым вышел).
Пример:
Очередь проще всего представить в виде узкой трубы, в один конец которой бросают мячи, с другого конца которой они вылетают.
Очереди имеет структуру:
информационное поле inf, которое может быть любого типа;
ссылочное поле next, которое будет использоваться для хранения ссылки на
следующий элемент очереди.
Функциональные элементы:
вложенный класс Node для реализации базового элемента очереди;
закрытое поле head, хранящее ссылку на первый элемент очереди;
3) закрытое поле tail, хранящее ссылку на последний элемент очереди; 4) конструктор класса.
tail
Две точки доступа headиtail.
17. Коллекции в c#, описать какие структуры данных реализуют.
Коллекция– структура данных, обеспечивающая множества … элементов и эффективный доступ к ним.
Способ добавления, хранения и последовательного доступа зависит от поставленной задачи.
Основные интерфейсы коллекций.
Перечисление:IEnumeratorиIEnumerable(перебор элементов последовательности)
Коллекция:ICollectionиICollection<T> (базовый для всех коллекций)
Список:IListиIList<T> (доступ по индексу)
Множество:ISet<T> - набор уникальных элементов
Словарь: IDictionary, IDictionary<TKey, TValue>
Какие структуры данных реализуют.
Массив
Плюсы:
Память
Произвольный доступ
Последовательный доступ
Минусы:
Упорядочивание
Добавление и удаление элементов
Динамический массив
Плюсы:
Произвольный доступ
Последовательный доступ
Добавление и удаление в конце
Минусы:
Упорядочивание
Добавление и удаление в начале
Добавление и удаление в произвольной позиции
Сортированный массив
Плюсы:
Произвольный доступ
Последовательный доступ
Поиск
Упорядочивание
Минусы:
Добавление и удаление элементов
Связный список
Плюсы:
Последовательный доступ Добавление и удаление элементов
Минусы:
Память
Произвольный доступ
Поиск
Хеш-таблицы
Плюсы:
Произвольный доступ
Добавление и удаление элементов
Минусы:
Память
Последовательный доступ
Поиск
18. Матрицы преобразований.
Область применения:
– DirectXиOpenGL
– почти любые 2Dи все 3Dигры
– CSS3 –Xaml(WPF)
Матрица переноса
Т=
Пример. Сместить точку (100,100) на 10 пикселей по оси OX:
(100,100) => [100 100 1]*=
(110,100)
Матрица поворота
T=
Пример. Повернуть точку (100,100) на 0,5 радиан (28,6о) относительно центра:
[100 100 1]*=
Матрица масштабирования.
T=
Пример. Увеличить масштаб фигуры, в которую входит (100,100) в 2 раза относительно центра.
[100 100 1]*=
Матрица отражения.
Tx=Ty=
Пример. Отразить (100,100) относительно OX.
[100 100 1]*=
3D пространство.
Ось OZнаправлена от наблюдателя.
Матрица переноса (translate)
T=
Матрица растяжения/сжатия (scale)
T=
Матрица поворота (robate)
Toz=Tox=Toy=
private void button2_Click(object sender, EventArgs e)
{
p=MatrixHelper.Translate(p, 10, 0);
Graph.DrawRectangle(prn, p.X, p.Y, 50, 50);
}