Viens no datu struktūru veidiem, kas ir tiešs matemātisko vienību iemiesojums datorzinātnēs, ir kopas. Darbības ar viņiem diezgan bieži ir dažādu algoritmu pamatā. Dažādām programmēšanas valodām ir savi līdzekļi kopu aprakstīšanai.
Nepieciešams
- - attīstības vide;
- - tulks no izvēlētās programmēšanas valodas.
Instrukcijas
1. solis
Aprakstiet komplektu, izmantojot programmēšanas valodu, ja tāda ir pieejama. Piemēram, Pascal valodā ir kopu konstrukcija, kas ļauj deklarēt atbilstošos veidus. Tiesa, šādu komplektu apjoms nedrīkst pārsniegt 256 elementus. Komplekta tipa deklarāciju piemērs varētu izskatīties šādi:
tips
AZLetters = 'A' kopa.. 'Z';
AllLetters = rakstzīmju kopa;
Mainīgie un tipu konstantes, kas ir kopas, tiek deklarēti parastajā veidā. Šajā gadījumā inicializēšanai var izmantot noteiktus literāļus. Piemēram:
konst
LettersSet1: AZLetters = ['A', 'B', 'C'];
2. solis
Izmantojiet standarta bibliotēku vai moduļu iespējas, lai aprakstītu kopas. Tātad C ++ veidņu bibliotēkā, kas jāpiegādā kopā ar kompilatoru, ir iekļauta veidne komplekta konteineru klasei, kas īsteno kopu funkcionalitāti:
veidne <
klases atslēga, klases īpašības = mazāk, klases sadalītājs = piešķīrējs
klases komplekts
Kā redzams no saraksta, kopas veidnes argumenti ir: kopas elementu datu tips, funkcionālā objekta tips, lai noteiktu kopas elementu secību, un atmiņas sadalītāja tips. Šajā gadījumā ir nepieciešams tikai pirmais arguments (kā pārējie divi, pēc noklusējuma tiek izmantots standarta binārais predikāts mazāk un standarta sadalītājs).
3. solis
Pielietojiet klases vai klases veidnes, kas tiek izmantotas tādu ietvaru izstrādē, kas ievieš funkcionalitāti darbā ar kopām, ja tādas ir. Šāda rīka piemērs ir Qt bibliotēkas QtCore moduļa QSet veidņu klase. Tās iespējas ir līdzīgas STL komplekta konteineram, kas aprakstīts iepriekšējā solī.
4. solis
Aprakstiet kopu, izmantojot savus ieviešanas līdzekļus. Vienkāršu veidu un mazu izmēru elementu kopām izmantojiet bitu karodziņus, kas glabājas fiksēta garuma blokos. Ievietojiet noteiktu konteineru klasi sarežģītiem datu tipiem. Par pamatu varat izmantot asociatīvo vai jaucošo asociatīvo masīvu funkcionalitāti. To savukārt var veidot, balstoties uz pašbalansējošiem bināro meklēšanas kokiem (piemēram, sarkanmelniem kokiem).