Множество (тип данных) | это... Что такое Множество (тип данных)? (original) (raw)

Множествотип и структура данных в информатике, является реализацией математического объекта множество.

Данные типа множество позволяют хранить ограниченное число значений определённого типа без определённого порядка. Повторение значений, как правило, недопустимо. За исключением того, что множество в программировании конечно, оно в общем соответствует концепции математического множества. Для этого типа в языках программирования обычно предусмотрены стандартные операции над множествами.

В зависимости от идеологии, разные языки программирования рассматривают множество как простой или сложный тип данных.

Реализации

Множество в Паскале

В языке Паскаль множество — составной тип данных, хранящий информацию о присутствии в множестве объектов любого счетного типа. Мощность этого типа определяет размер множества — 1 бит на элемент. В Turbo Pascal есть ограничение на 256 элементов, в некоторых других реализациях это ограничение ослаблено.

Пример работы с множествами:

type {определяем базовые для множеств перечислимый тип и тип-диапазон} colors = (red,green,blue); smallnumbers = 0..10; {определяем множества из наших типов} colorset = set of colors; numberset = set of smallnumbers; {можно и не задавать тип отдельно} anothernumberset = set of 0..20;

{объявляем переменные типа множеств} var nset1,nset2,nset3:numberset; cset:colorset; begin nset1 := [0,2,4,6,8,10]; {задаем в виде конструктора множества} cset := [red,blue]; {простым перечислением элементов} nset2 := [1,3,9,7,5]; {порядок перечисления неважен} nset3 := []; {пустое множество} include(nset3,7); {добавление элемента} exclude(nset3,7); {исключение элемента} nset1 := [0..5]; {возможно задавать элементы диапазоном} nset3 := nset1 + nset2; {объединение} nset3 := nset1 * nset2; {пересечение} nset3 := nset1 - nset2; {разность} if (5 in nset2) or {проверка на вхождение элемента} (green in cset) then {…} end.

Просмотр этого шаблона Типы данных
Неинтерпретируемые БитНибблБайтТритТрайтСлово
Числовые ЦелыйС фиксированной запятойС плавающей запятой • Рациональный • КомплексныйДлинныйИнтервальный
Текстовые СимвольныйСтроковый
Указатель Адрес • Ссылка
Композитные Алгебраический тип данных (обобщённый) • МассивАссоциативный массивКлассСписокКортежОбъект • Option type • Product • СтруктураМножествоОбъединение (tagged)
Другие Логический • Низший тип • КоллекцияПеречисляемый типИсключение • First-class function • Opaque data type • Recursive data type • СемафорПотокВысший тип • Type class • Unit type • Void
Связанные темы Абстрактный тип данныхСтруктура данныхИнтерфейс • Kind (type theory) • Примитивный тип • Subtyping • Шаблоны C++ • Конструктор типа • Parametric polymorphism
Просмотр этого шаблона Структуры данных (список)
Типы КоллекцияКонтейнер
Массивы Ассоциативный массив • Multimap • МножествоМультимножествоХеш-таблица
Списки Связный списокОчередь (Кольцевой буферДвусвязная) • СтекСписок с пропусками
Деревья B-деревоДвоичное дерево поискаКуча
Графы Ориентированный графНаправленный ациклический графБинарная диаграмма решенийГиперграф