首页 > 其他 > 详细

邻接矩阵建图

时间:2020-07-28 21:48:51      阅读:72      评论:0      收藏:0      [点我收藏+]
#include<iostream>
#define N 100
using namespace std;

struct Graph{
    int vertex_number;
    int edge_number;
    char vertex[N];
    int edge[N][N];
};
Graph* G;

int getVertexPosition(char v){
    for(int k=0;k<G->edge_number;k++){
        if(G->vertex[k]==v){
            return k;
        }
    }
    return -1;
}
void createGraph(){
    cout<<"请输入各个顶点:"<<endl;
    for(int k=0;k<G->vertex_number;k++){
        cin>>G->vertex[k];
    }
    for(int i=0;i<G->vertex_number;i++){
        for(int j=0;j<G->vertex_number;j++){
            G->edge[i][j]=0;
        }
    }
    cout<<"请输入各个边的邻接点、权重:"<<endl;
    for(int k=0;k<G->edge_number;k++){
        char v1,v2;
        int weight;
        cin>>v1>>v2>>weight;
        int i=getVertexPosition(v1);
        int j=getVertexPosition(v2);
        G->edge[i][j]=weight;
    }
}
void show(){
    cout<<"输出各个顶点:"<<endl;
    for(int k=0;k<G->vertex_number;k++){
        cout<<G->vertex[k];
    }
    cout<<endl;
    cout<<"输出邻接矩阵:"<<endl;
    for(int i=0;i<G->vertex_number;i++){
        for(int j=0;j<G->vertex_number;j++){
            cout<<G->edge[i][j];
        }
        cout<<endl;
    }
}
int main(){
    G=new Graph();
    cout<<"请输入顶点个数、边个数:"<<endl;
    cin>>G->vertex_number>>G->edge_number;
    createGraph();
    show();
    return 0;
}

 

邻接矩阵建图

原文:https://www.cnblogs.com/zzyf/p/13392634.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!