|
| void | recur_graph (int set_id, int *dependancy_list, int current_tree, int *check) |
Definition at line 40 of file set_graph.cpp.
◆ delete_tree()
| void set_graph::delete_tree |
( |
| ) |
|
|
inline |
Definition at line 154 of file set_graph.cpp.
155 {
156 std::vector<struct Edge>().swap(
set_gr);
157 }
vector< struct Edge > set_gr
◆ dependancy_sort()
| void set_graph::dependancy_sort |
( |
int * | dependancy_list, |
|
|
int * | check ) |
|
inline |
Definition at line 124 of file set_graph.cpp.
135 {
137
138 for (
auto edge =
set_gr.begin(); edge !=
set_gr.end(); edge++){
139 int edg_id = edge ->
id;
140
141 if ( edge->dep_size == 0 && edge->color == 0){
142
143 edge->color =edge->id;
146
147 }else {
148 recur_graph(edg_id, dependancy_list, edg_id ,check);
149 if (*check < 0) return;
150 }
151 }
152 }
void recur_graph(int set_id, int *dependancy_list, int current_tree, int *check)
◆ init_edge()
| void set_graph::init_edge |
( |
int | edge, |
|
|
int | dep_sz, |
|
|
int * | dep_list ) |
|
inline |
Definition at line 94 of file set_graph.cpp.
106 {
107 struct Edge edg;
108 edg.id=edge;
109 edg.dep_size=dep_sz;
110 edg.color=0;
111 edg.closed_tree_check = 0;
112
113 edg.set_list = new int [dep_sz];
114
115 for (int i=0;i<dep_sz;i++)
116 {
117 edg.set_list[i] = dep_list[i];
118
119 }
121 }
◆ print()
| void set_graph::print |
( |
| ) |
|
|
inline |
Definition at line 159 of file set_graph.cpp.
164 {
165 for (
auto edge =
set_gr.begin(); edge !=
set_gr.end(); edge++){
166 cout << "id: " << edge->id << " color: " << edge->color << " size: " << edge->dep_size << endl;
167 cout << " ";
168 int * list = edge-> set_list;
169 for (int i=0; i< edge->dep_size ; i++){
170 cout << list[i] << "," ;
171 }
172 cout << endl;
173 }
174 }
◆ recur_graph()
| void set_graph::recur_graph |
( |
int | set_id, |
|
|
int * | dependancy_list, |
|
|
int | current_tree, |
|
|
int * | check ) |
|
inlineprivate |
Definition at line 48 of file set_graph.cpp.
59 {
60
61 if (*check < 0) return;
62
63 auto edge =
set_gr.begin()+set_id-1;
64 if (edge -> color > 0) return;
65
66 if (edge->closed_tree_check == current_tree) {
67
68 *check = -current_tree;
69 return;
70 }
71
72 edge->closed_tree_check=current_tree;
73
74 for (int i=0; i< edge->dep_size; i++) {
75 int new_set = edge->set_list[i];
76
77 recur_graph(new_set, dependancy_list, current_tree,check );
78
79 if (*check < 0) return;
80 }
81
82
83 if ( edge->color == 0){
84 edge->color =edge->id;
86
88 }
89
90 }
◆ depend_stack
| int set_graph::depend_stack |
|
private |
◆ set_gr
| vector<struct Edge> set_graph::set_gr |
|
private |
The documentation for this class was generated from the following file: