Üheks andmetehnoloogia tüübiks, mis on arvutiteaduses matemaatiliste üksuste otsene kehastus, on komplektid. Nendega tehtavad toimingud on erinevate algoritmide aluseks. Erinevatel programmeerimiskeeltel on komplektide kirjeldamiseks oma vahendid.
Vajalik
- - arengukeskkond;
- - tõlk valitud programmeerimiskeelest.
Juhised
Samm 1
Kirjeldage komplekti, kasutades programmeerimiskeelt, kui see on saadaval. Näiteks Pascali keeles on komplekt, mis võimaldab teil deklareerida vastavad tüübid. Tõsi, selliste komplektide maht ei tohiks ületada 256 elementi. Komplekti tüüpi deklaratsioonide näide võib välja näha järgmine:
tüüp
AZLetters = 'A' komplekt. 'Z';
AllLetters = söekogum;
Hulkadeks olevad muutujad ja konstandid deklareeritakse tavalisel viisil. Sel juhul saab initsialiseerimiseks kasutada seatud literaale. Näiteks:
konst
LettersSet1: AZLetters = ['A', 'B', 'C'];
2. samm
Kasutage komplektide kirjeldamiseks standardsete teekide või moodulite võimalusi. Niisiis, kompilaatoriga kaasas olev C ++ mallide kogu sisaldab komplekti konteineriklassi malli, mis rakendab komplektide funktsionaalsust:
mall <
klassi võti, klassi tunnused = vähem, klass Jaotaja = eraldaja
klassi komplekt
Nagu loendist näha, on komplekti malli argumendid: komplekti elementide andmetüüp, funktsionaalse objekti tüüp, et määrata komplektis elementide järjestus, ja mälujaguri tüüp. Sellisel juhul on vajalik ainult esimene argument (kuna ülejäänud kaks, kasutatakse vaikimisi standardset binaarset predikaati vähem ja standardset eraldajat).
3. samm
Rakendage klasside või klasside malle, mida kasutatakse raamistike väljatöötamisel, mis rakendavad komplektidega töötamise funktsionaalsust, kui neid on. Sellise tööriista näiteks on Qt-teegi QtCore mooduli QSet malliklass. Selle võimalused on sarnased eelmises etapis kirjeldatud STL-i konteineri omadustega.
4. samm
Kirjeldage komplekti oma rakendusvahendite abil. Lihtsa tüübi ja väikese suurusega elementide komplektide jaoks kasutage fikseeritud pikkusega massiividesse salvestatud bitilippe. Rakendage keerukate andmetüüpide jaoks määratud konteineriklass. Aluseks võite võtta assotsiatiivsete või räsivate assotsiatiivsete massiivide funktsionaalsuse. Selle saab omakorda üles ehitada isetasakaalustuvate binaarsete otsingupuude (näiteks punamustade puude) põhjal.