Skip to content

Commit 2e766b4

Browse files
committed
modify code
1 parent aeaa254 commit 2e766b4

File tree

5 files changed

+17
-2
lines changed

5 files changed

+17
-2
lines changed
Binary file not shown.

src/class118/Code01_KthAncestor.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ public static void addEdge(int u, int v) {
6060
head[u] = cnt++;
6161
}
6262

63+
// 当前来到i节点,i节点父亲节点是f
6364
public static void dfs(int i, int f) {
6465
if (i == 0) {
6566
deep[i] = 1;

src/class118/Code02_Multiply2.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,12 @@ public static void pop() {
7575

7676
public static void dfs(int root) {
7777
stackSize = 0;
78+
// 栈里存放三个信息
79+
// u : 当前处理的点
80+
// f : 当前点u的父节点
81+
// e : 处理到几号边了
82+
// 如果e==-1,表示之前没有处理过u的任何边
83+
// 如果e==0,表示u的边都已经处理完了
7884
push(root, 0, -1);
7985
while (stackSize > 0) {
8086
pop();

src/class118/Code03_Tarjan1.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ public class Code03_Tarjan1 {
3434

3535
public static int[] queryTo = new int[MAXN << 1];
3636

37+
// 问题的编号,一旦有答案可以知道填写在哪
3738
public static int[] queryIndex = new int[MAXN << 1];
3839

3940
public static int qcnt;
@@ -72,7 +73,7 @@ public static void addQuery(int u, int v, int i) {
7273

7374
// 并查集找头节点递归版
7475
// 一般来说都这么写,但是本题附加的测试数据很毒
75-
// java这么写就会因为递归太深而爆栈,c++这么写就能通过
76+
// java这么写就会因为递归太深而爆栈,C++这么写就能通过
7677
public static int find(int i) {
7778
if (i != father[i]) {
7879
father[i] = find(father[i]);
@@ -82,7 +83,7 @@ public static int find(int i) {
8283

8384
// tarjan算法递归版
8485
// 一般来说都这么写,但是本题附加的测试数据很毒
85-
// java这么写就会因为递归太深而爆栈,c++这么写就能通过
86+
// java这么写就会因为递归太深而爆栈,C++这么写就能通过
8687
public static void tarjan(int u, int f) {
8788
visited[u] = true;
8889
for (int e = headEdge[u], v; e != 0; e = edgeNext[e]) {

src/class118/Code03_Tarjan2.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,12 @@ public static void tarjan(int u, int f) {
123123
// tarjan算法迭代版,根据上面的递归版改写
124124
public static void tarjan(int root) {
125125
stackSize = 0;
126+
// 栈里存放三个信息
127+
// u : 当前处理的点
128+
// f : 当前点u的父节点
129+
// e : 处理到几号边了
130+
// 如果e==-1,表示之前没有处理过u的任何边
131+
// 如果e==0,表示u的边都已经处理完了
126132
push(root, 0, -1);
127133
while (stackSize > 0) {
128134
pop();
@@ -138,6 +144,7 @@ public static void tarjan(int root) {
138144
push(edgeTo[e], u, -1);
139145
}
140146
} else {
147+
// e == 0代表u后续已经没有边需要处理了
141148
for (int q = headQuery[u], v; q != 0; q = queryNext[q]) {
142149
v = queryTo[q];
143150
if (visited[v]) {

0 commit comments

Comments
 (0)