邻接矩阵创建有向网的实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
cout<<"请输入总顶点数和总边数:"<<endl;
cin>>G.vexnum>>G.arcnum;//输入总定点数,总边数
cout<<"次输入点的信息:"<<endl;
for(int i=0;i<G.vexnum;i++)//依次输入点的信息
cin>>G.vexs[i];
for(int i=0;i<G.vexnum;i++)//初始化邻接矩阵,边的权值均置为极大值MaxInt
i=LocateVex(G,v1);
j=LocateVex(G,v2);//确定v1和v2在G中的位置,即顶点数组的下表
G.arcs[i][j]=w;//边<v1,v2>的权值置为w
}Baidu Nhomakorabea
return OK;
}
void PrintMatrix(AMGraph &G)//输出邻接矩阵
{
int i,j;
printf("邻接矩阵为:\n");
typedef char VerTexType;//假设顶点的数据类型为字符型
typedef int ArcType;//假设边的权值类型为整型
typedef int Status;
typedef struct
{
VerTexType vexs[MVNum];//顶点表
ArcType arcs[MVNum][MVNum];//邻接矩阵
for(int j=0;j<G.vexnum;j++)
G.arcs[i][j]=MaxInt;
cout<<"输入一条边依附的顶点及权值:"<<endl;
for(int k=0;k<G.arcnum;k++)//构造邻接矩阵
{
char v1,v2;
int w;
int i,j;
cin>>v1>>v2>>w;//输入一条边依附的顶点及权值
int vexnum,arcnum;//图的当前点数和边数
}AMGraph;
Status LocateVex(AMGraph G,char v)
{
int i;
for(i=0; i<G.vexnum; i++)
if(G.vexs[i]==v)
return i;
return ERROR;
}
Status CreateDN(AMGraph& G)
for(i=0;i<G.vexnum;i++)
{
for(j=0;j<G.vexnum;j++)
cout<<G.arcs[i][j]<<"\t";
cout<<endl;
}
}
int main()
{
AMGraph G;
CreateDN(G);
PrintMatrix(G);
}}
韩山师范学院
实验题目:
邻接矩阵创建有向网算法实现
班级:2015级软工班
作者:黄俊聪
#include<iostream>
using namespace std;
#define MaxInt 32767 //表示极大值,即∞
#define MVNum 100 //最大顶点数
#define OK 1
#define ERROR 0;
cout<<"请输入总顶点数和总边数:"<<endl;
cin>>G.vexnum>>G.arcnum;//输入总定点数,总边数
cout<<"次输入点的信息:"<<endl;
for(int i=0;i<G.vexnum;i++)//依次输入点的信息
cin>>G.vexs[i];
for(int i=0;i<G.vexnum;i++)//初始化邻接矩阵,边的权值均置为极大值MaxInt
i=LocateVex(G,v1);
j=LocateVex(G,v2);//确定v1和v2在G中的位置,即顶点数组的下表
G.arcs[i][j]=w;//边<v1,v2>的权值置为w
}Baidu Nhomakorabea
return OK;
}
void PrintMatrix(AMGraph &G)//输出邻接矩阵
{
int i,j;
printf("邻接矩阵为:\n");
typedef char VerTexType;//假设顶点的数据类型为字符型
typedef int ArcType;//假设边的权值类型为整型
typedef int Status;
typedef struct
{
VerTexType vexs[MVNum];//顶点表
ArcType arcs[MVNum][MVNum];//邻接矩阵
for(int j=0;j<G.vexnum;j++)
G.arcs[i][j]=MaxInt;
cout<<"输入一条边依附的顶点及权值:"<<endl;
for(int k=0;k<G.arcnum;k++)//构造邻接矩阵
{
char v1,v2;
int w;
int i,j;
cin>>v1>>v2>>w;//输入一条边依附的顶点及权值
int vexnum,arcnum;//图的当前点数和边数
}AMGraph;
Status LocateVex(AMGraph G,char v)
{
int i;
for(i=0; i<G.vexnum; i++)
if(G.vexs[i]==v)
return i;
return ERROR;
}
Status CreateDN(AMGraph& G)
for(i=0;i<G.vexnum;i++)
{
for(j=0;j<G.vexnum;j++)
cout<<G.arcs[i][j]<<"\t";
cout<<endl;
}
}
int main()
{
AMGraph G;
CreateDN(G);
PrintMatrix(G);
}}
韩山师范学院
实验题目:
邻接矩阵创建有向网算法实现
班级:2015级软工班
作者:黄俊聪
#include<iostream>
using namespace std;
#define MaxInt 32767 //表示极大值,即∞
#define MVNum 100 //最大顶点数
#define OK 1
#define ERROR 0;