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

📄 func7-3.cpp

📁 数据结构算法解析第七章图论的程序源码
💻 CPP
字号:
 // func7-3.cpp 用于检验邻接矩阵和邻接表的主函数
 void main()
 {
   int i,j,k,n;
   char s[3]="边";
   Graph g; // 抽象的图类型
   VertexType v1,v2; // 顶点类型
   printf("请依次选择有向图,有向网,无向图,无向网:\n");
   for(i=0;i<4;i++) // 验证4种情况
   { CreateGraph(g); // 构造图g
     Display(g); // 输出图g
     printf("插入新顶点,请输入新顶点的值:");
     Input(v1); // 根据顶点信息的类型,输入顶点v1的信息,在func7-1.cpp中
     InsertVex(g,v1); // 在图g中插入顶点v1
     if(g.kind<2) // 有向
       strcpy(s,"弧");
     printf("插入与新顶点有关的%s,请输入%s数:",s,s);
     scanf("%d",&n);
     for(k=0;k<n;k++) // 依次插入n条弧(边)
     { printf("请输入另一顶点的名称:");
       scanf("%s",v2.name);
       if(g.kind<=1) // 有向
       { printf("请输入另一顶点的方向(0:弧头 1:弧尾):");
         scanf("%d",&j);
         if(j) // v2是弧尾
           InsertArc(g,v2,v1); // 在图g中插入弧v2→v1
         else // v2是弧头
           InsertArc(g,v1,v2); // 在图g中插入弧v1→v2
       }
       else // 无向
         InsertArc(g,v1,v2); // 在图g中插入边v1—v2
     }
     Display(g); // 输出图g
     printf("删除顶点及相关的%s,请输入待删除顶点的名称:",s);
     scanf("%s",v1.name);
     DeleteVex(g,v1); // 在图g中删除顶点v1
     Display(g); // 输出图g
     if(i==3) // 对于最后一个(无向网),测试以下函数
     { printf("修改顶点的值,请输入待修改顶点名称 新值:");
       scanf("%s",v1.name); // 输入待修改顶点名称,以查找待修改的顶点
       Input(v2); // 输入顶点的新值,以代替原值
       PutVex(g,v1,v2); // 将图g中顶点v1的值改为v2
       if(g.kind<2) // 有向(假设最后一个可以不是无向网)
         printf("删除一条%s,请输入待删除%s的弧尾 弧头:",s,s);
       else // 无向
         printf("删除一条%s,请输入待删除%s的顶点1 顶点2:",s,s);
       scanf("%s%s",v1.name,v2.name); // 输入待删除弧(边)的2顶点的名称
       DeleteArc(g,v1,v2); // 删除图g中由顶点v1指向顶点v2的弧(边)
       Display(g); // 输出图g
     }
     DestroyGraph(g); // 销毁图g
   }
 }

⌨️ 快捷键说明

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