图的表示——C++建立图的邻接矩阵
2022/5/25 5:20:03
本文主要是介绍图的表示——C++建立图的邻接矩阵,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
用C++与关系矩阵表示图模型
#include <iostream> #include <ctime> #include <string> #include <vector> using namespace std; #define LL long long const int MAX_SCALE=10; class picM{ vector<vector<int>> nearMatrix; vector<int> OD,ID; int size; public: picM(){ size=0; for(int i=0;i<MAX_SCALE;i++){ vector<int> v(MAX_SCALE,0); nearMatrix.push_back(v); } } void resize(int n){ size=n; for(int i=0;i<n;i++){ vector<int> v(n,0); nearMatrix.push_back(v); } } void add(int a,int b,int c){ if(a>size) size=a; if(b>size) size=b; nearMatrix[a-1][b-1]=c; } void printMatrix(){ cout<<"邻接矩阵如下:"<<endl; for(int i=0;i<size+1;i++){ if(i==0){ for(int j=0;j<size+1;j++){ if(j==0){ cout<<" "; }else{ cout<<" "; cout<<j; if(j<10) cout<<" "; } } }else{ for(int j=0;j<size+1;j++){ if(j==0){ cout<<i; if(i<10) cout<<" "; }else{ cout<<" "; cout<<nearMatrix[i-1][j-1]; if(nearMatrix[i-1][j-1]<10) cout<<" "; } } } cout<<endl; } } void calNum(){ //计算度数并输出,默认为无向权重图 cout<<"结点出度如下:"<<endl; OD.resize(size); ID.resize(size); for(int i=0;i<size;i++){ OD[i]=0; ID[i]=0; for(int j=0;j<size;j++){ OD[i]+=nearMatrix[i][j]; ID[i]+=nearMatrix[j][i]; } cout<<"结点"<<i+1<<"的出度为:"<<OD[i]<<",入度为:"<<ID[i]<<endl; } return ; } }; int main(){ picM p; int n,a,b,c,m; cout<<"请输入顶点的个数:"; cin>>m; p.resize(m); cout<<"请输入边的数量:"; cin>>n; for(int i=0;i<n;i++){ cin>>a>>b>>c; p.add(a,b,c); } p.printMatrix(); p.calNum(); return 0; }
很简单的ADT编写与功能实现,默认为有向权重图,注意出度与入度的区分即可,整体逻辑清晰也很简单;值得注意的是矩阵的输出格式化,考虑到两位数字,必须设置好输出的格式(占位两格不足补齐,间隔都为一格),才能使关系矩阵被有序的输出。若是无向矩阵,添加边信息时双向的矩阵内容都要填补。
这篇关于图的表示——C++建立图的邻接矩阵的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-29Elasticsearch慢查询日志配置
- 2024-05-29揭秘华为如此多成功项目的产品关键——Charter模板
- 2024-05-29海外IDC业务拓展的7大挑战
- 2024-05-29InLine Chat功能优化对标Github Copilot,CodeGeeX带来更高效、更直观的编程体验!
- 2024-05-29CodeGeeX 智能编程助手 6 项功能升级,在Visual Studio插件市场霸榜2周!
- 2024-05-29AutoMQ 生态集成 Apache Doris
- 2024-05-292024年IDC行业的深度挖掘:机遇、挑战与未来展望
- 2024-05-29五款扩展组件齐发 —— Volcano、Keda、Crane-scheduler 等,邀你体验
- 2024-05-29AutoMQ 对象存储数据高效组织的秘密: Compaction
- 2024-05-29活动预告|来 GIAC 大会听大数据降本利器:AutoMQ 基于云原生重新设计的 Kafka