-
Notifications
You must be signed in to change notification settings - Fork 0
/
supportSet.h
63 lines (48 loc) · 2.23 KB
/
supportSet.h
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
/*
* subtreeIsoDataStoreList.h
*
* Created on: Mar 16, 2016
* Author: pascal
*/
#ifndef SUPPORTSET_H_
#define SUPPORTSET_H_
#include "graph.h"
#include "iterativeSubtreeIsomorphism.h"
#include "intSet.h"
struct SupportSetElement {
struct SubtreeIsoDataStore data;
struct SupportSetElement* next;
};
struct SupportSet {
struct SupportSetElement* first;
struct SupportSetElement* last;
struct SupportSet* next;
size_t size;
int patternId;
};
void appendSupportSetElement(struct SupportSet* s, struct SupportSetElement* e);
void appendSupportSetData(struct SupportSet* l, struct SubtreeIsoDataStore data);
void pushSupportSetElement(struct SupportSet* s, struct SupportSetElement* e);
void pushSupportSetData(struct SupportSet* l, struct SubtreeIsoDataStore data);
struct SupportSetElement* popSupportSetElement(struct SupportSet* s);
struct SubtreeIsoDataStore popSupportSetData(struct SupportSet *s);
void printSupportSet(struct SupportSet *l, FILE *out);
void printSupportSetSparse(struct SupportSet* l, FILE* out);
void printSupportSetsSparse(struct SupportSet* lists, FILE* out);
struct SupportSet* getSupportSet();
void shallowdumpSupportSetElements(struct SupportSetElement *e);
void dumpSupportSetCopy(struct SupportSet* s);
void dumpSupportSetElements(struct SupportSetElement* e);
void dumpSupportSet(struct SupportSet* s);
void dumpSupportSetElementsWithPostorder(struct SupportSetElement* e, struct GraphPool* gp);
void dumpSupportSetWithPostorder(struct SupportSet* s, struct GraphPool* gp);
void dumpSupportSetWithPattern(struct SupportSet* supportSets, struct GraphPool* gp);
struct SupportSet* intersectTwoSupportSets(struct SupportSet* l1, struct SupportSet* l2);
struct SupportSet* intersectSupportSets(struct SupportSet* aprioriList);
char isSortedSupportSetOnPatterns(struct SupportSet* l);
struct SupportSet* getSupportSetsOfPatterns(struct SupportSet* allSupportSets, struct IntSet* patternIds);
struct SupportSet* shallowCopySupportSet(struct SupportSet* a);
struct SupportSet* supportSetChangeHead(struct SupportSet* parentSupportSets, int parentIdToKeep);
struct SupportSet *appendSupportSets(struct SupportSet *front, struct SupportSet *back);
struct SupportSet *popSupportSet(struct SupportSet **s);
#endif /* SUPPORTSET_H_ */