En af de typer datastrukturer, der er den direkte udførelsesform for matematiske enheder inden for datalogi, er sæt. Operationer med dem ligger ofte til grund for forskellige algoritmer. Forskellige programmeringssprog har deres egne midler til at beskrive sæt.
Nødvendig
- - udviklingsmiljø
- - oversætter fra det valgte programmeringssprog.
Instruktioner
Trin 1
Beskriv sættet ved hjælp af programmeringssprog, hvis det er tilgængeligt. For eksempel er der i Pascal-sproget en sætkonstruktion, der giver dig mulighed for at erklære de tilsvarende typer. Sandt nok skal volumenet af sådanne sæt ikke overstige 256 elementer. Et eksempel på sættypedeklarationer kan se sådan ud:
type
AZLetters = sæt af 'A'.. 'Z';
AllLetters = sæt char;
Variabler og konstanter af typer, der er sæt, erklæres på den sædvanlige måde. I dette tilfælde kan indstillede bogstaver bruges til initialisering. For eksempel:
konst
LettersSet1: AZLetters = ['A', 'B', 'C'];
Trin 2
Brug funktionerne i standardbiblioteker eller moduler til at beskrive sæt. Så C ++ skabelonbiblioteket, der skal leveres med compileren, inkluderer en skabelon til den indstillede containerklasse, der implementerer sætets funktionalitet:
skabelon <
klasse nøgle, klasseegenskaber = mindre, klasse Allocator = tildeler
klassesæt
Som du kan se fra listen, er argumenterne for sætskabelonen: datatypen for elementerne i sættet, typen af det funktionelle objekt til at bestemme rækkefølgen af elementerne i sættet og typen af hukommelsesallokeringen. I dette tilfælde kræves kun det første argument (som de to andre er standard binært prædikat mindre og standardallokeringen brugt som standard).
Trin 3
Anvend klasser eller klasseskabeloner, der bruges i udviklingen af rammer, der implementerer funktionaliteten ved at arbejde med sæt, hvis nogen. Et eksempel på et sådant værktøj er QSet-skabelonklassen i QtCore-modulet i Qt-biblioteket. Dens egenskaber svarer til dem i STL-sætbeholderen, der blev beskrevet i det foregående trin.
Trin 4
Beskriv sættet ved hjælp af dine egne implementeringsmidler. Brug bitflag, gemt i arrays med fast længde, til sæt af elementer af enkle typer og små størrelser. Implementere en angivet beholderklasse til komplekse datatyper. Som basis kan du tage funktionaliteten af associative eller hashing associerende arrays. Det kan igen bygges på basis af selvbalancerende binære søgetræer (for eksempel rød-sorte træer).