比较两个图形的顶点度

时间:2015-07-29 14:05:02

标签: c++ graph

我编写了一个代码,用于显示两个相同程度的顶点相等的图形。但是我不知道它为什么不能正常工作并给出错误的答案。例如:对于两个图形如:

[0 1 1 0 0     [0 1 0 1 0 
 1 0 1 0 0      1 0 1 0 0
 1 0 0 1 0      0 1 0 1 0 
 0 0 1 0 1      0 0 1 0 1
 0 0 0 1 0]     0 0 0 1 0]

但它不应该写出这样的信息:"两个图形不具有相同的顶点度数"但它写了它。我不知道该怎么做。 如果有可能请指导我。

int temp = 0;
    int temp2 = 0;
    int gg = 1;
    for (int ia = 0; ia < m; ia++)
    {
        for (int ja = 0; ja < m; ja++)
        {
            if (j.f[ia][ja] == 1)
            {

                temp++;
            }

        }
        for (int i = 0; i < m; i++&&gg == 1)
        {
            for (int j = 0; j < m; j++&&gg == 1)
            {
                if (g.f[i][j] == 1)
                {

                    temp2++;
                }
            }
            if (temp == temp2)
                gg = 0;
            else
            {
                cout << "two graphs don't have the same degree of vertices";
                system("pause");
                exit(1);

            }


        }

1 个答案:

答案 0 :(得分:0)

请改为尝试:

int temp=0;
int temp2=0;

for(int i = 0; i < m; i++)
  for(int j = 0; j < m; j++)
    temp += j.f[i][j];

for(int i = 0; i < m; i++)
  for(int j = 0; j < m; j++)
    temp2 += g.f[i][j];

if(temp!=temp2){
  cout<<"two graphics don't have the same degree of vertices";
  system("pause");
  exit(1);
}

这段代码的作用是先完成两个顶点的检查程度,然后进行比较。你的代码正在做的是在第一个图的检查中嵌套第二个完整图的检查,并且由于代码结构不良而发生了奇怪的行为。完成两项检查,然后进行比较。