Безліч (тип даних)

Безліч - тип та структура даних в інформатиці, є реалізацією математичного об'єкта безліч.

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

В залежності від ідеології, різні мови програмування розглядають безліч як простий або складний тип даних.


Реалізації

Безліч у Паскалі

У мові Паскаль безліч - складової тип даних, що зберігає інформацію про присутність у множині об'єктів будь-якого рахункового типу. Потужність цього типу визначає розмір безлічі - 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  . 


Перегляд цього шаблону Типи даних
Неінтерпретіруемие
Числові
Текстові
Покажчик

Адреса Посилання

Композитні
Інші

Логічний Нижчий тип Колекція Перераховуються тип Виняток First-class function Opaque data type Recursive data type Семафор Потік Вищий тип Type class Unit type Void

Пов'язані теми
Перегляд цього шаблону Структури даних ( список)
Типи
Масиви
Списки
Дерева
Графи