Java: Структуры данных (Модуль 0. Урок 1. List/Set/Array).

preview_player
Показать описание
В первом модуле будем говорить об абстрактных структурах данных (СД).

Что же такое структура данных (СД)?

СД - способ организации информации в компьютере таким образом, чтобы потом ее эффективно использовать.

Простыми словами - представление логической связи между отдельными элементами определенного типа.

Каждая СД работает с записями. Один объект внутри структуры данных - одна запись. Одна запись может быть n-размерной.

По мерности записей на один объект, СД делят на:

0 - юнит/unit (но таких СД нет);
1 - синглтон/singleton - хранит только объект. Это может быть число, строка, да вообще любой объект;
2 - пара/couple, pair, dual, twin, product - хранит не только сам объект, но и дополнительную, связанную с ним, информацию, которая не является частью этого объекта. Это может быть ключ к объекту или некий другой объект;
3 - трипл/triple...
n - ...

Рассмотрим пример:
Какую СД выбрать?

Задача 1. Составить список всех студентов в группе.
Задача 2. Список всех аудиторий в корпусе университета.
Какого размера будет запись в СД?

Один студент - одна запись в СД, но форма записи может быть многомерной. Для списка аудиторий нам точно triplet не пригодится. Поэтому размер записи для студентов / аудиторий - 1 / 1

СД для хранения или для обработки?

- хранение - просматривать, изменять, сохранять запись.
- обработка - достать и удалить.

Список студентов нужно как-то обрабатывать, а список аудиторий просто для учета, поэтому: обрабатывать **/** хранить.
Разрешаем ли мы хранить дубликаты?

Фамилии, имена могут совпадать, в отличии от номеров аудиторий в одном корпусе, поэтому: да / нет

СД будет фиксированного или изменяемого размера? Для обоих задач — изменяемого.

Выбираем СД:

для учета студентов — list (например, его имплементация ArrayList);
для учета аудиторий — set (например, его имплементация TreeSet)
Почитайте про каждую из этих структур данных из примера. Возможно у вас будут иные обоснованные предложения той или иной СД для этого примера? Обсуждение приветствуется :)

Классификация структур данных

Полезные ссылки:

Наши ссылки:

Рекомендации по теме
Комментарии
Автор

Очень классная подача, спасибо что Вы начали этим заниматься, реально легко, . доступно и ясно(о всех уроках).Терпения, творческого энтузиазма ну и всего всего наилучшего :) Благодарю)

unbelieveblethings