Esempio n. 1
0
File: set.c Progetto: ctx2002/8cc
Set *set_intersection(Set *a, Set *b) {
    Set *r = NULL;
    for (; a; a = a->next)
        if (set_has(b, a->v))
            r = set_add(r, a->v);
    return r;
}
Esempio n. 2
0
File: set.c Progetto: ctx2002/8cc
Set *set_union(Set *a, Set *b) {
    Set *r = b;
    for (; a; a = a->next)
        if (!set_has(b, a->v))
            r = set_add(r, a->v);
    return r;
}
Esempio n. 3
0
void
set_add
(
	set* s,
	SETDATA* d
)
{
	if (set_has(s, d)) return;
	s->items[s->size] = d;
	s->size = s->size + 1;
}
Esempio n. 4
0
void
set_difference
(
	set* result,
	set* a,
	set* b
)
{
	for (int i = 0; i < a->size; i++) {
		if (!set_has(b, a->items[i]))
			set_add(result, a->items[i]);
	}
}
Esempio n. 5
0
void
set_intersection
(
	set* result,
	set* a,
	set* b
)
{
	for (int i = 0; i < a->size; i++) {
		if (set_has(b, a->items[i])) 
			set_add(result, a->items[i]);
	}
}