En av de typer av datastrukturer som är den direkta utföringsformen av matematiska enheter inom datavetenskap är uppsättningar. Operationer med dem ligger ofta bakom olika algoritmer. Olika programmeringsspråk har sina egna metoder för att beskriva uppsättningar.
Nödvändig
- - utvecklingsmiljö;
- - översättare från det valda programmeringsspråket.
Instruktioner
Steg 1
Beskriv uppsättningen med programmeringsspråket, om tillgängligt. Till exempel finns det i Pascal-språket en uppsättningskonstruktion som låter dig deklarera motsvarande typer. Det är sant att volymen på sådana uppsättningar inte får överstiga 256 element. Ett exempel på typdeklarationer kan se ut så här:
typ
AZLetters = uppsättning 'A'.. 'Z';
AllLetters = uppsättning röding;
Variabler och konstanter av typer som är uppsättningar deklareras på vanligt sätt. I detta fall kan inställda bokstäver användas för initialisering. Till exempel:
konst
LettersSet1: AZLetters = ['A', 'B', 'C'];
Steg 2
Använd funktionerna i standardbibliotek eller moduler för att beskriva uppsättningar. Så C ++ - mallbiblioteket, som ska levereras med kompilatorn, innehåller en mall för den uppsatta behållarklassen som implementerar funktionerna för uppsättningar:
mall <
klassnyckel, klassdrag = mindre, klass Allocator = fördelare
klassuppsättning
Som du kan se från listan är argumenten för uppsättningsmallen: datatypen för elementen i uppsättningen, typen av det funktionella objektet för att bestämma ordningen på elementen i uppsättningen och typen av minnesallokerare. I det här fallet krävs endast det första argumentet (som de andra två används standard binärt predikat mindre och standardallokeraren används som standard).
Steg 3
Tillämpa klasser eller klassmallar som används vid utveckling av ramar som implementerar funktionaliteten för att arbeta med uppsättningar, om sådana finns. Ett exempel på ett sådant verktyg är QSet-mallklassen för QtCore-modulen i Qt-biblioteket. Dess funktioner liknar de för STL-setbehållaren som beskrivs i föregående steg.
Steg 4
Beskriv uppsättningen med hjälp av dina egna implementeringsmetoder. Använd bitflaggor, lagrade i matriser med fast längd, för uppsättningar av element av enkla typer och små storlekar. Implementera en uppsättning behållarklass för komplexa datatyper. Som bas kan du ta funktionaliteten hos associerande eller hashing associerande matriser. Den kan i sin tur byggas på basis av självbalanserande binära sökträd (till exempel rödsvarta träd).