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

📄 graphm.cpp

📁 用vc++编写的关于数据结构的图类的若干算法
💻 CPP
字号:
//图的相关运算的测试graphM.cpp
#include<iostream.h>
#include<iomanip.h>
#include<stdlib.h>
#include "graph.cpp"
void main()
{cout<<"graphM.cpp运行结果:\n";
 //定义图的点数及搜索起始点序号等
 int n,k,i;
 //k1为0则无向否则为有向,k2为0则无权否则为有权
 int k1,k2;
 //标记已访问过的点
 bool *vis;
 //定义邻接表
 adjlist AL;
 cout<<"输入图的点数n=";cin>>n;
 AL=new edgenode*[n];
 vis=new bool[n];
 if(!vis) {cout<<"申请堆内存失败!\n";exit(1);}
 for(i=0;i<n;i++)
  vis[i]=false;
 cout<<"输入选择无向(权)与有向(权)图的值k1,k2:";
 cin>>k1>>k2;
 //定义邻接矩阵
 AdjMatrix A(n,k2);
 A.CreateMatrix(n,k1,k2);
 cout<<"出发点Vk的序号=";cin>>k;
 cout<<"\n输出邻接矩阵相应图的每个顶点:\n";
 A.Creatgraph(n,k2);
 cout<<"当前的顶点数为:"<<A.NumV()<<endl;
 cout<<"当前的边数为:"<<A.NumEdges()<<endl;

 cout<<"图的深度优先搜索顺序:\n";
 A.dfsMatrix(vis,k,n,k2);
 for(i=0;i<n;i++) vis[i]=false;
 cout<<"\n图的广度优先搜索顺序:\n";
 A.bfsMatrix(vis,k,n,k2);

 cout<<"\n输出邻接表的每个邻接点:\n";
 for(i=0;i<n;i++) vis[i]=false;
 A.graphChange(AL,n,k2);
 delete []vis;

 A.DeleteEdge(0,2);
 A.DeleteEdge(2,0);

 cout<<"当前的顶点数为:"<<A.NumV()<<endl;
 cout<<"当前的边数为:"<<A.NumEdges()<<endl;
 cout<<"图的深度优先搜索顺序:\n";
 A.dfsMatrix(n,k2);
 cout<<"\n图的广度优先搜索顺序:\n";
 A.bfsMatrix(n,k2);
 cin.get();cin.get();
}

⌨️ 快捷键说明

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