数据结构 邻接表有向图

数据结构 邻接表有向图

ID:18377111

大小:127.00 KB

页数:19页

时间:2018-09-17

数据结构 邻接表有向图_第1页
数据结构 邻接表有向图_第2页
数据结构 邻接表有向图_第3页
数据结构 邻接表有向图_第4页
数据结构 邻接表有向图_第5页
资源描述:

《数据结构 邻接表有向图》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#include"C:DocumentsandSettings中原桌面GraphLinkList.h"//====================================================================================================================================////邻接表有向图部分////========================================================================

2、============================================================structListNode//定义图的顶点结点每个结点包含结点vex和一个用于存储边的链表lis{charvex;//顶点元素LinkListlis;//边链表ListNode(){};//结点的无参构造函数ListNode(charv){vex=v;}//给定顶点时构造结点voidoperator=(ListNode&n){vex=n.vex;lis=n.lis;}//实现结点的赋值booloperator>(List

3、Noden){returnvex>n.vex;}//实现结点的比较booloperator==(ListNoden){returnvex==n.vex;}//实现结点的比较};classAdjListDirGraph//定义邻接表有向图{public:intvexNum,edgeNum;//定义vexNum存储图的顶点数、和有向边数edgeNumLinkListvList;//定义以图的顶点结点构成的表AdjListDirGraph(){vexNum=0;edgeNum=0;}//图的构造函数无参数时默认构造0个顶点的图~AdjL

4、istDirGraph(){clear();}//析构函数voidinsetVertex(charv);//向图中插入一个顶点vvoiddelVertex(charv);//在图中删除顶点vvoidsetEdge(intv1,intv2);//插入从顶点v1到顶点v2的边v1、v2为顶点对应的位置voiddelEdge(intv1,intv2);//删除从顶点v1到顶点v2的边v1、v2为顶点对应的位置intgetSite(charv);//获取顶点v在顶点表中的位置voidsetEdge(charv1,charv2){setEdge(getSite

5、(v1),getSite(v2));}//插入从顶点v1到顶点v2的边v1、v2为顶点voiddelEdge(charv1,charv2){delEdge(getSite(v1),getSite(v2));}//删除从顶点v1到顶点v2的边v1、v2为顶点voidshowVertex();//输出图的顶点及其对应的位置voidshowEdge();//输出以每个顶点为起点的边intinDegree(intv);//求第v个顶点的入度intoutDegree(intv);//求以顶点v为起点的边数求第v个顶点的出度intinDegree(charv){

6、returninDegree(getSite(v));}//求顶点v的入度intoutDegree(charv){returnoutDegree(getSite(v));}//求取顶点v的出度voidclear();//图清空voidoperator=(AdjListDirGraph&G){vexNum=G.vexNum;edgeNum=G.edgeNum;vList=G.vList;}//重载运算符”="实现图的复制};voidAdjListDirGraph::insetVertex(charv){intsite=getSite(v);if(sit

7、e==vexNum+1){ListNodee(v);//生成顶点结点vvList.TailInsert(e);//向顶点表的末位插入一个顶点结点vexNum++;}}voidAdjListDirGraph::delVertex(charv){intsite=getSite(v);if(site>=1&&site<=vexNum)//当顶点在已存在顶点的表示的范围之内时进行操作{for(inti=1;i<=vList.Length();i++){//i<=vList的顶点数时for(intj=1;j<=vList.GetPosP(i)->data.li

8、s.Length();j++){if(vList.GetPosP(i)->data.lis.GetPosP(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。