⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prim.txt

📁 prim算法是从连通网中的某一个顶点开始
💻 TXT
字号:
#include<iostream.h>
#define max 99
void prim(int g[max][max],int k,int n)
{
  int i,j,min,p;
  struct{
          int adjvex;
          int lowcost;
        }closedge[30];
  for(i=1;i<=n;i++)
      if(i!=k)
         {
            closedge[i].adjvex=k;
            closedge[i].lowcost=g[k][i];
         }
  closedge[k].lowcost=0;
  for(i=1;i<n;i++)
      {
         p=1;
         min=max;
         for(j=1;j<=n;j++)
            if(closedge[j].lowcost!=0&&closedge[j].lowcost<min)
                {
                   min=closedge[j].lowcost;
                   p=j;
                }
         printf("%d__%d  %d\n",closedge[p].adjvex,p,min);
         closedge[p].lowcost=0;
         for(j=1;j<=n;j++)
            if(g[p][j]<closedge[j].lowcost)
                {
                   closedge[j].lowcost=g[p][j];
                   closedge[j].adjvex=p;
                }
      }
}
void main()
{
  int g[max][max],k,n,i,j;
  cout<<"请输入顶点个数:"; cin>>n;
  cout<<"请输入邻接矩阵:"<<endl;
  for(i=1;i<=n;i++)
     for(j=1;j<=n;j++)
        cin>>g[i][j];
  cout<<"请输入开始顶点:"; cin>>k;
  prim(g,k,n);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -