MCPcopy Create free account
hub / github.com/algorithmzuo/algorithm-journey / dfs2

Method dfs2

src/class183/Code07_Message1.java:159–185  ·  view source on GitHub ↗
(int cur, int fa, int edg)

Source from the content-addressed store, hash-verified

157
158 // 收集信息迭代版
159 public static void dfs2(int cur, int fa, int edg) {
160 stacksize = 0;
161 push(cur, fa, edg, -1);
162 while (stacksize > 0) {
163 pop();
164 if (e == -1) {
165 nodeCnt[edge]++;
166 maxEdge = Math.max(maxEdge, edge);
167 for (int e = headq[u]; e > 0; e = nextq[e]) {
168 if (dis[e] >= edge) {
169 needArr[++cnta] = dis[e] - edge;
170 qidArr[cnta] = qid[e];
171 }
172 }
173 e = headg[u];
174 } else {
175 e = nextg[e];
176 }
177 if (e != 0) {
178 push(u, f, edge, e);
179 int v = tog[e];
180 if (v != f && !vis[v]) {
181 push(tog[e], u, edge + 1, -1);
182 }
183 }
184 }
185 }
186
187 public static void calc(int u, int edge, int effect) {
188 cnta = 0;

Callers 1

calcMethod · 0.95

Calls 3

pushMethod · 0.95
popMethod · 0.95
maxMethod · 0.45

Tested by

no test coverage detected