我必须在图中检测一个循环 .

矩阵的大小是m×n,其中m是进程总数,n是资源总数 .

  • 0:进程Pi和资源Rj之间没有边缘 .

  • 1:从进程Pi到资源Rj存在传出边缘 .

  • 2:从资源Rj到进程Pi存在传出边缘 .

TestCase01.txt的示例是
2,1
0,0
1,2

输出应该是
检测到死锁程序找到此循环:P0 - > R1 - > P2 - > R0 - > P0

我想跟踪访问节点,这些节点产生一个循环,但我的输出是
检测到死锁程序找到此循环:

我认为我的算法有点不对,我该怎么办?

This is code that I have done.

import java.io.*;
import java.util.*;

public class FindCycle { 
    static int[][] matrix = new int[10000][10000];
    static int x=0, y=0;

    public static void main(String[] args) {      
        {
            try
            {
            BufferedReader in = new BufferedReader(new FileReader("TestCase01.txt"));

                String line;
                while ((line = in.readLine()) != null)  
                {
                    y=0;
                    String[] values = line.split(",");

                    for (String str : values)
                    {
                        int str_int = Integer.parseInt(str);
                        matrix[x][y]=str_int;

                        System.out.print(matrix[x][y] + " ");
                        y++;
                    }

                    System.out.println("");

                    x++;
                }   

                in.close();


                System.out.println(isDeadlock());