Як описати безліч

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

Вам знадобиться

  • - середовище розробки;
  • - транслятор з вибраної мови програмування.

Інструкція

1


Опишіть безліч за допомогою засобів мови програмування, якщо вони у нього є. Наприклад, в мові Pascal існує конструкція set, що дозволяє декларувати відповідні типи. Правда, обсяг таких множин не повинен перевищувати 256 елементів. Приклад оголошень типів множин може виглядати так:

type
AZLetters = set of `A` .. `Z`;
AllLetters = set of char;

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

const
LettersSet1: AZLetters = [ `A`, `B`, `C`] -

2
Використовуйте можливості стандартних бібліотек або модулів для опису множин. Так, бібліотека шаблонів C ++, яка повинна поставлятися разом з компілятором, включає шаблон класу контейнера set, що реалізує функціонал множин:

template lt;
class Key,
class Traits = less,
class Allocator = allocator
gt;
class set

Як видно з лістингу, аргументами шаблону set є: тип даних елементів безлічі, тип функціонального об`єкта для визначення порядку проходження елементів в наборі і тип об`єкту-розподільника пам`яті. При цьому тільки перший аргумент обов`язковий (як двох інших за замовчуванням використовується стандартний бінарний предикат less і стандартний розподільник).




3
Застосуйте класи або шаблони класів використовуваних при розробці фреймворків, які реалізують функціонал роботи з множинами, якщо такі є. Як приклад подібного засобу може виступати шаблонний клас QSet модуля QtCore бібліотеки Qt. Його можливості аналогічні тим, які має контейнер set з STL, описаний в попередньому кроці.
4
Опишіть безліч за допомогою засобів власної реалізації. Використовуйте бітові прапори, що зберігаються в масивах даних фіксованої довжини, для множин елементів простих типів і невеликого обсягу. Реалізуйте клас контейнера множин для складних типів даних. За основу можна взяти функціонал асоціативних або хешірующіх асоціативних масивів. Його ж, в свою чергу, можна побудувати на базі самобалансірующіхся бінарних дерев пошуку (наприклад, червоно-чорних дерев).


Увага, тільки СЬОГОДНІ!


Оцініть, будь ласка статтю
Всього голосів: 123
Увага, тільки СЬОГОДНІ!