-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSetADT.c
More file actions
156 lines (133 loc) · 4.31 KB
/
Copy pathSetADT.c
File metadata and controls
156 lines (133 loc) · 4.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
// * Filename: setadt.c
#include <stdio.h>
#include <stdlib.h>
#include "SetADT.h"
void Dimiourgia(typos_synolou synolo)
/* Λειτουργία: Δημιουργεί ένα σύνολο χωρίς στοιχεία, δηλαδή το κενό σύνολο.
Επιστρέφει: Το κενό σύνολο
*/
{
stoixeio_synolou i;
for (i = 1; i <= megisto_plithos; i++)
synolo[i] = FALSE;
}
void Katholiko(typos_synolou synolo)
/* Δέχεται: Ένα σύνολο.
Λειτουργία: Δημιουργεί ένα σύνολο με όλα τα στοιχεία παρόντα,
έτσι όπως ορίστηκε στο τμήμα δηλώσεων του προγράμματος.
Επιστρέφει: Το καθολικό σύνολο που δημιουργήθηκε
*/
{
stoixeio_synolou i;
for (i = 1; i <= megisto_plithos; i++)
synolo[i] = TRUE;
}
void Eisagogi(stoixeio_synolou stoixeio, typos_synolou synolo)
/* Δέχεται: Ένα σύνολο και ένα στοιχείο.
Λειτουργία: Εισάγει το στοιχείο στο σύνολο.
Επιστρέφει: Το τροποποιημένο σύνολο
*/
{
synolo[stoixeio] = TRUE;
}
void Diagrafi(stoixeio_synolou stoixeio, typos_synolou synolo)
/* Δέχεται: Ένα σύνολο και ένα στοιχείο.
Λειτουργία: Διαγράφει το στοιχείο από το σύνολο.
Επιστρέφει: Το τροποποιημένο σύνολο
*/
{
synolo[stoixeio] = FALSE;
}
boolean Melos(stoixeio_synolou stoixeio, typos_synolou synolo)
/* Δέχεται: Ένα σύνολο και ένα στοιχείο.
Λειτουργία: Ελέγχει αν το στοιχείο είναι μέλος του συνόλου.
Επιστρέφει: Επιστρέφει TRUE αν το στοιχείο είναι μέλος του και FALSE διαφορετικά
*/
{
return synolo[stoixeio];
}
boolean KenoSynolo(typos_synolou synolo)
/*
Δέχεται: Ένα σύνολο.
Λειτουργία: Ελέγχει αν το σύνολο είναι κενό.
Επιστρέφει: Επιστρέφει TRUE αν το σύνολο είναι κενό και FALSE διαφορετικά
*/
{
stoixeio_synolou i;
boolean keno;
keno=TRUE;
i = 1;
while (i <= megisto_plithos && keno) {
if (Melos(i, synolo))
keno = FALSE;
else
i++;
}
return keno;
}
boolean IsaSynola(typos_synolou s1, typos_synolou s2)
/* Δέχεται: Δύο σύνολα s1 και s2.
Λειτουργία: Ελέγχει αν τα δύο σύνολα είναι ίσα.
Επιστρέφει: Επιστρέφει TRUE αν τα δύο σύνολα έχουν τα ίδια στοιχεία και FALSE διαφορετικά
*/
{
stoixeio_synolou i;
boolean isa;
isa = TRUE;
i=1;
while ((i <= megisto_plithos) && isa)
if (Melos(i,s1) != Melos(i,s2))
isa = FALSE;
else
i++;
return isa;
}
boolean Yposynolo(typos_synolou s1, typos_synolou s2)
/* Δέχεται: Δύο σύνολα s1 και s2.
Λειτουργία: Ελέγχει αν το σύνολο s1 είναι υποσύνολο του s2.
Επιστρέφει: Επιστρέφει true αν το σύνολο s1 είναι ένα υποσύνολο του s2,
δηλαδή αν κάθε στοιχείο του s1 είναι και στοιχείο του s2
*/
{
stoixeio_synolou i;
boolean yposyn;
yposyn = TRUE;
i=1;
while (i <= megisto_plithos && yposyn)
if (Melos(i, s1) && !Melos(i, s2))
yposyn = FALSE;
else
i++;
return yposyn;
}
void EnosiSynolou(typos_synolou s1, typos_synolou s2, typos_synolou enosi)
/* Δέχεται: Δύο σύνολα s1 και s2.
Λειτουργία: Δημιουργεί ένα νέο σύνολο με τα στοιχεία που ανήκουν ή στο s1 ή
στο s2 ή και στα δύο σύνολα.
Επιστρέφει: Επιστρέφει το σύνολο enosi που προκύπτει από την ένωση των συνόλων s1 και s2
*/
{
stoixeio_synolou i;
for (i = 1; i <= megisto_plithos; i++)
enosi[i] = Melos(i, s1) || Melos(i, s2);
}
void TomiSynolou(typos_synolou s1, typos_synolou s2, typos_synolou tomi)
/* Δέχεται: Δύο σύνολα s1 και s2.
Λειτουργία: Δημιουργεί ένα νέο σύνολο με τα στοιχεία που ανήκουν και στα δύο σύνολα s1 και s2.
Επιστρέφει: Επιστρέφει το σύνολο tomi που προκύπτει από την τομή των συνόλων s1 και s2
*/
{
stoixeio_synolou i;
for (i = 1; i <= megisto_plithos; i++)
tomi[i] = Melos(i, s1) && Melos(i, s2);
}
void DiaforaSynolou(typos_synolou s1, typos_synolou s2, typos_synolou diafora)
/* Δέχεται: Δύο σύνολα s1 και s2.
Λειτουργία: Δημιουργεί ένα νέο σύνολο με τα στοιχεία που ανήκουν στο σύνολο s1 και δεν ανήκουν στο s2.
Επιστρέφει: Επιστρέφει το σύνολο diafora που προκύπτει από την διαφορά των συνόλων s1-s2.
*/
{
stoixeio_synolou i;
for (i = 1; i <= megisto_plithos; i++)
diafora[i] = Melos(i, s1) && (!Melos(i, s2));
}