Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#顶点边_C#_Algorithm_Matrix_Graph_Adjacency Matrix - Fatal编程技术网

C#顶点边

C#顶点边,c#,algorithm,matrix,graph,adjacency-matrix,C#,Algorithm,Matrix,Graph,Adjacency Matrix,我在做这个任务时遇到了一个问题:如果n顶点图的顶点1(刺)与顶点2(尾巴)相连,顶点3(身体)与其他顶点(脚)相连,那么n顶点图就是蝎子。一些脚可能连接到其他脚。设计一个算法,确定给定的图形是否代表蝎子,并告诉哪条线是刺、尾巴、身体和触角。 这是我要读取的数据文件: 我想先找到刺,但我怎么能找到尾巴和身体的联系呢?我还必须使用递归 编辑: 好的,现在我已经发现每行中有多少“+”: int[] B = new int[100]; for (int i = 0; i < n;

我在做这个任务时遇到了一个问题:如果n顶点图的顶点1(刺)与顶点2(尾巴)相连,顶点3(身体)与其他顶点(脚)相连,那么n顶点图就是蝎子。一些脚可能连接到其他脚。设计一个算法,确定给定的图形是否代表蝎子,并告诉哪条线是刺、尾巴、身体和触角。 这是我要读取的数据文件:

我想先找到刺,但我怎么能找到尾巴和身体的联系呢?我还必须使用递归 编辑: 好的,现在我已经发现每行中有多少“+”:

int[] B = new int[100];
       for (int i = 0; i < n; i++)
       {
           for (int j = 0; j < n; j++)
           {
               int HowMuch = Regex.Matches(A[i,j], @"\+").Count;
               Saving[i] += HowMuch;
           }
           if(Saving[i]>=3)
           {
               Console.WriteLine("It's a scorpion!");
               Console.WriteLine("The body is in: " + i + " part");
           }
       }
int[]B=新的int[100];
对于(int i=0;i=3)
{
控制台。WriteLine(“这是一只蝎子!”);
Console.WriteLine(“主体位于:“+i+”部分”);
}
}

通过递归,我试图找到路径连接。。。我该如何继续

static void Find(字符串[,]A,int n,int j)
{
对于(int i=0;i
所以,我给你一个如何解决这个问题的想法。我得到了他的帮助。你应该看看那里。在那个网站上有一个提示

我的方法和他们的略有不同

从抽象的角度来看,你是在问,从一个邻接矩阵,确定给定的点是否像这个图像(又名蝎子)。(摘自该网站)

现在,邻接矩阵如何转化为蝎子?让我们看看你的例子。 我手工画了邻接矩阵和图表。我希望它不太难理解

现在怎么解决呢?这里计算每个节点的阶数。你可以通过这里的邻接矩阵来计算。(度表示一个节点连接到的节点数,例如,对于我在那里绘制的图,度1为1,度0为2,依此类推……)

首先,您可以在这里找到所有节点的阶数(节点表示顶点,反之亦然)

所以,刺应该是一级的。现在有问题了,我会再谈的。但是现在让我们不考虑它。< /P> 尾巴应该是2度。它会和毒刺相连。因此,找到与sting连接的一个节点,就完成了。那是尾巴

与尾巴相连的节点(除刺外)是身体

主体的阶数将大于等于2。所以,如果有一个顶点有那么大的度数,那就是物体。与之相连的节点是feets

现在你可能会说,触角是2度的,那么为什么不是尾巴呢?因为它们没有连接到sting(您前面已经计算过)

你也可能会说,脚是1度的,为什么不刺呢?因为它连接到某个阶数大于2的节点,而该节点不能连接(因为尾部阶数为2)

<>这一切都很好,但是考虑一个问题,如果图是这样的,

1-0-3-4

那刺是什么,脚是什么?我的答案是两者都有。1和4都可以是腿或刺

我希望你能理解我说的话

必要时对图像进行澄清:
你说,有a+就有边。请注意第1行的+和第0行的3。因此,0连接到1和4。我就这样把它们连接起来了。并且连接是双向的。你们可以从邻接矩阵中看到这一点。

所以,我给你们一个如何解决这个问题的想法。我得到了他的帮助。你应该看看那里。在那个网站上有一个提示

我的方法和他们的略有不同

从抽象的角度来看,你是在问,从一个邻接矩阵,确定给定的点是否像这个图像(又名蝎子)。(摘自该网站)

现在,邻接矩阵如何转化为蝎子?让我们看看你的例子。 我手工画了邻接矩阵和图表。我希望它不太难理解

现在怎么解决呢?这里计算每个节点的阶数。你可以通过这里的邻接矩阵来计算。(度表示一个节点连接到的节点数,例如,对于我在那里绘制的图,度1为1,度0为2,依此类推……)

首先,您可以在这里找到所有节点的阶数(节点表示顶点,反之亦然)

所以,刺应该是一级的。现在有问题了,我会再谈的。但是现在让我们不考虑它。< /P> 尾巴应该是2度。它会和毒刺相连。因此,找到与sting连接的一个节点,就完成了。那是尾巴

与尾巴相连的节点(除刺外)是身体

主体的阶数将大于等于2。所以,如果有一个顶点有那么大的度数,那就是物体。与之相连的节点是feets

现在你可能会说,触角是2度的,那么为什么不是尾巴呢?因为它们没有连接到sting(您前面已经计算过)

你也可能会说,脚是1度的,为什么不刺呢?因为它连接到某个阶数大于2的节点,而该节点不能连接(因为尾部阶数为2)

<>这一切都很好,但是考虑一个问题,如果图是这样的,

1-0-3-4

那刺是什么,脚是什么?我的答案是两者都有。1和4都可以是腿或刺

我希望你能理解我说的话

必要时对图像进行澄清: 你说有a+就有a
static void Find(string[,] A, int n, int j)
    {
        for (int i = 0; i < n; i++)
        {
            if(A[i,j]=="+")
            {
                j = i;
                Find(A, n, j);
            }
        }

    }