欢迎来到天天文库
浏览记录
ID:16334552
大小:92.50 KB
页数:18页
时间:2018-08-09
《数据结构 邻接表有向网》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include"D:ProgramFilesVisualC++.6.0MSDev98MyProjectsGraphLinkList.h"//====================================================================================================================================////邻接表有向网部分////==================================================================
2、==================================================================structVexWeight{intvex;intweight;VexWeight(){vex=0;weight=0;}VexWeight(intv){vex=v;weight=0;}VexWeight(intv,intw){vex=v;weight=w;}voidoperator=(VexWeightn){vex=n.vex;weight=n.weight;}operatorint(){returnvex;}};structListNetNo
3、de//定义网的顶点结点每个结点包含结点vex和一个用于存储边的链表lis{charvex;//顶点元素LinkListlis;//设置网的边链表ListNetNode(){};//结点的无参构造函数ListNetNode(charv){vex=v;}//给定顶点时构造结点voidoperator=(ListNetNode&n){vex=n.vex;lis=n.lis;}//实现结点的赋值booloperator>(ListNetNoden){returnvex>n.vex;}//实现结点的比较booloperator==(ListNetNoden){r
4、eturnvex==n.vex;}//实现结点的比较};classAdjListDirNet//定义邻接表有向网{public:intvexNum,edgeNum;//定义vexNum存储网的顶点数、和有向边数edgeNumLinkListvList;//定义以网的顶点结点构成的表AdjListDirNet(){vexNum=0;edgeNum=0;}//网的构造函数无参数时默认构造0个顶点的网~AdjListDirNet(){clear();}//析构函数voidinsetVertex(charv);//向网中插入一个顶点vvoiddelVerte
5、x(charv);//在网中删除顶点vvoidsetEdge(intv1,intv2);//插入从顶点v1到顶点v2的边v1、v2为顶点对应的位置voiddelEdge(intv1,intv2);//删除从顶点v1到顶点v2的边v1、v2为顶点对应的位置intgetSite(charv);//获取顶点v在顶点表中的位置voidsetEdge(charv1,charv2){setEdge(getSite(v1),getSite(v2));}//插入从顶点v1到顶点v2的边v1、v2为顶点voiddelEdge(charv1,charv2){delEdge(getSite(v1)
6、,getSite(v2));}//删除从顶点v1到顶点v2的边v1、v2为顶点voidsetEdge(charv1,VexWeightv2);voidshowVertex();//输出网的顶点及其对应的位置voidshowEdge();//输出以每个顶点为起点的边intinDegree(intv);//求第v个顶点的入度intoutDegree(intv);//求以顶点v为起点的边数求第v个顶点的出度intinDegree(charv){returninDegree(getSite(v));}//求顶点v的入度intoutDegree(charv){returnoutDegr
7、ee(getSite(v));}//求取顶点v的出度voidclear();//网清空voidoperator=(AdjListDirNet&G){vexNum=G.vexNum;edgeNum=G.edgeNum;vList=G.vList;}//重载运算符”="实现网的复制};voidAdjListDirNet::insetVertex(charv){intsite=getSite(v);if(site==vexNum+1){ListNetNodee(v);//生成顶点结点vvList.TailIn
此文档下载收益归作者所有