Pages: 1/1 First page 1 Final page [ View by Articles | List ]

实验八  图的最小生成树

| November 13, 2008 21:34 | timmy | Via Original
Graph1.h

void InitMatrix(adjmatrix G)
{
  int i,j;
  for(i=0;i<MaxVertexNum;i++)
    for(j=0;j<MaxVertexNum;j++)
      if(i==j)
        G[i][j]=0;
      else
        G[i][j]=MaxValue;
}

void CreateMatrix(adjmatrix G,int n)
{
  char *s=new char[100];
  cerr<<"please input the matrix: ";
  cin>>s;
  istrstream sin(s);
  char c1,c2,c3;
  int i,j;
  WeightType w;
  sin>>c1;
    do{
      sin>>c1>>i>>c2>>j>>c3>>w;
      if(i*j<0||i>n-1||j>n-1)
        exit(1);
      G[i][j]=G[j][i]=w;
      sin>>c1;
      if(c1=='}')
        break;
    }while(1);
}

void PrintMatrix(adjmatrix G,int n)
{
  int i,j;
  cout<<"V={";
  for(i=0;i<n-1;i++)
    cout<<i<<',';
  cout<<n-1<<')'<<endl;
  cout<<"E={";
  for(i=0;i<n;i++)
      for(j=0;j<n;j++)
      if(G[i][j]!=0&&G[i][j]!=MaxValue)
        if(i<j)
          cout<<'('<<i<<','<<j<<')'<<G[i][j]<<',';
  cout<<'}'<<endl;
}

void InitArray(edgeset GE)
{
  for(int i=0;i<MaxEdgeNum;i++){
    GE[i].fromvex=GE[i].endvex=-1;
    GE[i].weight=MaxValue;
  }
}

Tags: ,
Pages: 1/1 First page 1 Final page [ View by Articles | List ]