Как да опиша комплекта

Съдържание:

Как да опиша комплекта
Как да опиша комплекта

Видео: Как да опиша комплекта

Видео: Как да опиша комплекта
Видео: Мои Родители Скрывали Жуткую Тайну Обо Мне (Я СЪЕЛА СВОЮ СЕСТРЁНКУ!) | Моя реальная история 2024, Ноември
Anonim

Един от видовете структури от данни, които са прякото въплъщение на математическите единици в компютърните науки, са множествата. Операциите с тях доста често са в основата на различни алгоритми. Различните езици за програмиране имат свои собствени средства за описване на набори.

Как да опиша комплекта
Как да опиша комплекта

Необходимо

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

Инструкции

Етап 1

Опишете комплекта, като използвате езика за програмиране, ако е наличен. Например в езика Паскал има конструкция на набор, която ви позволява да декларирате съответните типове. Вярно е, че обемът на такива комплекти не трябва да надвишава 256 елемента. Пример за декларации за набор може да изглежда така:

Тип

AZLetters = набор от 'A'.. 'Z';

AllLetters = набор от char;

Променливите и константите на типовете, които са набори, се декларират по обичайния начин. В този случай зададените литерали могат да се използват за инициализация. Например:

конст

LettersSet1: AZLetters = ['A', 'B', 'C'];

Стъпка 2

Използвайте възможностите на стандартните библиотеки или модули, за да опишете набори. И така, библиотеката с шаблони на C ++, която трябва да бъде доставена заедно с компилатора, включва шаблон за клас контейнер за набор, който реализира функционалността на набори:

шаблон <

клас ключ, клас черти = по-малко, клас Разпределител = разпределител

клас набор

Както можете да видите от списъка, аргументите на шаблона за набор са: типът данни на елементите от набора, типът на функционалния обект за определяне на реда на елементите в набора и видът на разпределителя на паметта. В този случай се изисква само първият аргумент (както другите два, стандартният двоичен предикат по-малко и стандартният разпределител се използват по подразбиране).

Стъпка 3

Прилагайте класове или шаблони за класове, използвани при разработването на рамки, които реализират функционалността за работа с набори, ако има такива. Пример за такъв инструмент е класът на шаблона QSet на модула QtCore на библиотеката Qt. Неговите възможности са подобни на тези на STL контейнера, описан в предишната стъпка.

Стъпка 4

Опишете комплекта, като използвате собствените си средства за изпълнение. Използвайте битови флагове, съхранявани в масиви с фиксирана дължина, за набори от елементи от прости типове и малки размери. Внедрете клас контейнер за сложни типове данни. Като основа можете да вземете функционалността на асоциативни или хеширащи асоциативни масиви. Той от своя страна може да бъде изграден на базата на самобалансиращи се бинарни дървета за търсене (например червено-черни дървета).

Препоръчано: