已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
图邻接矩阵相关算法C+实现.cpp部分#include#includematrix.husing namespace std;int main()int item;cout输入矩阵大小:item; graphmatrix gmatrix(item); cout1:获取指定边权值endl;cout2:获取指定点的第一个邻接顶点endl;cout3:获取指定点相对于另一点的下一个临接点endl;cout4:深度优先遍历:endl;cout5:输出邻接矩阵:endl;cout6:插入一个顶点:endl;cout7:删除一个顶点:endl;cout8:插入一条边:endl;cout9:删除一条边:ch;while(ch!=0)switch(ch)case 1: int v1,v2; cout输入v1 ,v2:v1v2; cout权: gmatrix.getweight(v1,v2)endl;break;case 2:int v; cout输入指定点:v; coutfirst顶点: gmatrix.getfirstneighbor(v)endl; break;case 3:int v1,v2; cout输入v1,v2: v1v2; coutv1相对于v2的第一个邻接点:gmatrix.getnextneighbor(v1,v2)endl; break;case 4:gmatrix.DepthFS(); coutendl; break;case 5:gmatrix.print(); break;case 6: int v; cout输入欲插入顶点编号:v; gmatrix.insertv(v); gmatrix.print();break;case 7:int v; cout输入欲删除节点编号:v;gmatrix.delv(v);gmatrix.print();break; case 8:int v1,v2,w; cout输入v1,v2及其weight:v1v2w; gmatrix.inserte(v1,v2,w); break;case 9: int v3,v4; cout输入v1,v2:v3v4; gmatrix.dele(v3,v4); break; cout需要更多帮助吗?ch;if(ch=0)cout*谢谢使用*endl;return 0;.h部分#includeusing namespace std;templateclass graphmatrixprivate: int matrixmaxsize;int matrixsize;int maxweight;int edge256256;public:graphmatrix(int n);graphmatrix()cout*set memory free, program ends*matrixmaxsize)?1;-1);int getnumofV()return matrixsize;int getnumE();void insertv(int v);void delv(int v);void inserte(int v1,int v2,int w);void dele(int v1,int v2);templategraphmatrix:graphmatrix(int n)matrixmaxsize=256;maxweight=1000;if(n=matrixmaxsize) matrixsize=n;for(int i=0;in;i+)for(int j=0;jn;j+)cout输入点i+1到点j+1的边的权值edgeij;templateint graphmatrix:getweight(int& v1,int& v2)if(v1-1)=0&(v1-1)=0)&(v2-1)=matrixsize)return edgev1-1v2-1;else return -1;templateint graphmatrix:getfirstneighbor(int& v)if(v-1)=0&(v-1)matrixsize)for(int i=0;i0&edgev-1imaxweight)return i+1; return -1;templateint graphmatrix:getnextneighbor(int& v1,int& v2)if(v1-1)=0&(v1-1)=0&(v2-1)matrixsize)for(int j=0;j0&edgev1-1jmaxweight)return j+1;/遍找一行,看是否有其他邻接顶点/for(int i=v2;i0&edgev1-1imaxweight)return i+1;return -1;templatevoid graphmatrix:print()cout ;for(int i=0;imatrixsize;i+)couti+1 ;coutendl;for(int j=0;jmatrixsize;j+)cout j+1 ;for(int k=0;kmatrixsize;k+)cout edgejk ;coutendl;templatevoid graphmatrix:DepthFS()int * visited= new intmatrixsize;for(int i=0;imatrixsize;i+)visitedi=0;RDFS(1,visited);delete visited;templatevoid graphmatrix:RDFS(int v,int * visited)/针对有向图/coutv ;visitedv-1=1;int w=getfirstneighbor(v);while(w!=-1)if(visitedw-1=0)RDFS(w,visited);w=getnextneighbor(v,w); return ;templateint graphmatrix:getnumE()int num;for(int i=0;imatrixsize;i+)for(int j=0;j0&edgeijmaxweight)num+;return num;templatevoid graphmatrix:insertv(int v)if(v=matrixsize)cout节点已存在endl;return ;matrixsize+;for(int i=0;imatrixsize-1;i+)edgeiv-1=maxweight;edgev-1i=maxweight;edgev-1v-1=0;templatevoid graphmatrix:delv(int v)if(vmatrixsize)cout节点不存在endl;return ; int r,c;for(r=0;rv-1;r+)for(c=v;cmatrixsize;c+)edgerc-1=edgerc;for(r=v;rmatrixsize;r+)for(c=0;cv-1;c+)edger-1c=edgerc;for(r=v;rmatrixsize;r+)for(c=v;cmatrixsize;c+)edger-1c-1=edgerc;matrixsize-;templatevoid graphmatrix:inserte(int v1,int v2,int w)if(v1matrixsize|v2matrixsize|w=maxweight)cout参数异常0&edgev1-1v2-1maxweight)cout边已存在endl;return ; edgev1-1v2-1=w;template
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人成长计划模板与执行力手册
- 中级农作物植保员技能提升计划
- 教育行业新教师入职工作计划与专业发展
- 财务顾问客户沟通技巧
- 合规团队建设与工作指导手册
- 无人机装调检修工高级面试备考攻略
- 宠物食品行业发展趋势分析报告
- 智能终端的多媒体内容开发计划
- 幼儿园冬训达标通知书
- 幼儿园禁止吵闹通知书
- 分散特困监护协议书范本
- 维生素d教学课件
- 2025年中国电信内部转正考试题及答案
- 2025年核安全专业技术培训班结业考试试题(附答案)
- 足球队管理规章制度与队员行为准则
- 毕节物业收费管理办法
- 2025至2030中国化妆品检测行业市场深度调研及投资策略及有效策略与实施路径评估报告
- 2025年教师入编考试教育公共基础知识题库及答案
- 2025年6月黑吉辽蒙高考地理真题完全解读
- 2025年连云港市中考英语试卷真题(含答案解析)
- DB51∕T 3239-2024 危险化学品安全生产数据交换规范
评论
0/150
提交评论