Az egyik olyan adatstruktúra, amely a matematikai entitások közvetlen megtestesítője a számítástechnikában, a halmazok. A velük végzett műveletek meglehetősen gyakran különböző algoritmusok alapját képezik. A különböző programozási nyelveknek saját eszközeik vannak a halmazok leírására.
Szükséges
- - fejlesztőkörnyezet;
- - fordító a kiválasztott programozási nyelvről.
Utasítás
1. lépés
Írja le a készletet a programozási nyelv segítségével, ha rendelkezésre áll. Például a Pascal nyelvben van egy halmazkonstrukció, amely lehetővé teszi a megfelelő típusok deklarálását. Igaz, az ilyen halmazok mennyisége nem haladhatja meg a 256 elemet. A set típusú deklarációk példája így nézhet ki:
típus
AZLetters = 'A' halmaz.. 'Z';
AllLetters = char készlet;
A változók és a halmazokból álló típusok állandóit a szokásos módon deklaráljuk. Ebben az esetben inicializáláshoz halmaz literálok használhatók. Például:
konst
LettersSet1: AZLetters = ['A', 'B', 'C'];
2. lépés
Használja a szabványos könyvtárak vagy modulok képességeit a halmazok leírására. Tehát a C ++ sablonkönyvtár, amelyet a fordítóval kell szállítani, tartalmaz egy sablont a készlet tároló osztályhoz, amely megvalósítja a halmazok funkcionalitását:
sablon <
osztálykulcs, osztályvonások = kevesebb, class Allocator = allokátor
osztály készlet
Amint a felsorolásból látható, a halmazsablon argumentumai a következők: a halmaz elemeinek adattípusa, a halmaz elemeinek sorrendjét meghatározó funkcionális objektum típusa és a memóriafoglaló típusa. Ebben az esetben csak az első argumentumra van szükség (mivel a másik kettőnél a standard bináris predikátum kevesebb, és a standard allokátor alapértelmezés szerint használatos).
3. lépés
Alkalmazzon olyan kereteket fejlesztő osztályokat vagy osztálysablonokat, amelyek megvalósítják a halmazokkal való munkavégzés funkcionalitását, ha van ilyen. Ilyen eszköz például a Qt könyvtár QtCore moduljának QSet sablon osztálya. Képességei hasonlóak az előző lépésben leírt STL készlet tárolóhoz.
4. lépés
Írja le a készletet a saját megvalósítási eszközeivel. Használjon rögzített hosszúságú tömbökben tárolt bitjelzőket egyszerű típusú és kis méretű elemek készleteihez. Végezzen el egy meghatározott tárolóosztályt az összetett adattípusokhoz. Alapul veheti az asszociatív vagy hasító asszociatív tömbök funkcionalitását. Viszont az önkiegyensúlyozó bináris kereső fák (például vörös-fekete fák) alapján építhető fel.