ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:98.92KB ,
资源ID:17768768      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17768768.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构实验图的基本操作Word文件下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构实验图的基本操作Word文件下载.docx

1、G, GrphKind k)/ 采用数组邻接矩阵表示法,构造图/构造有向网G int i,,; har v,;G.ind=kd; /图的种类prntf(输入要构造的图的顶点数和弧数:n); scnf(%,%d,&G.em,G.am);gechar();/过滤回车 prnt(依次输入图的顶点名称ABCD.等等:n); or (i=;iGexm; i+)cnf(c,&Gvi);/构造顶点数据gtha();/过滤回车 o (i; i头顶点名,权值 输入数据:如-B,2n); se prnt(按照: 尾顶点名-头顶点名输入数据:n);for (k=; k%c,%d,,w,&q); /输入弧的两个定点及

2、该弧的权重 lse saf(-%c,v,&w); char(); or(i0;i.vex;+) if(.vexsi=v) brek;/查找出v在vexs中的位置i i(=G.vexnum) cerrvete ERR!;exit(1); or(j=0;Gvxnu; j+)f(Gvexj=w) break;/查找出v在vexs中的位置 if(j=G.nm) cerr头顶点名,权值 输入数据:如A-B,23ab,5c,8-b,7,4d-c,3输出邻接矩阵 5| 8 | 4| | | | | | | | | 3| Pres any kytoconine*/voidPntGrap(MGa &)ti,j;

3、 swch(.kind) cas DG: for (0; iG.vexnum;i+) fo(j=0; jG.exu; j+) prin( 2.d|,Grsj); pintf(n); beak; cas D: fr (i0; .vexnm; i) for (j=0;Gvxnm; j+) i(G.arcsij!=Maalue) printf(%2.| ,Garcsi); lse prinf( |); prit(n reak; cseAG: fo(i=0;G.vxnm; i+) for (=0; Gvenum; j+) pnf( .d ,arci); prntf( eak; ceAN: /*完成构造

4、无向网* /* 请模仿编写无向网*/ for (i=0; G.venm; fr (j=0;.em;j) i(G.arcsi!=MaValue)rintf( %.d ,G.asj); s pritf( pitf(n brea; /*完成函数*vod cudig(MGrap G) /请完成计算图的入度或初度 (G.kind=DG|G.ind=) /计算有向图或网的各个顶点的入度与出度 n out,inD; ni,j; fr(i0;iG.ven;+)outDinD=0; for(j=;jG.vexnum;+) if(G.arj!=0&G.arcs!=xale) otD+; for(j=0;) if(

5、G.rc!=&G.rsji!=MaxVue) inD+; pritf(%c:出度是%d,入度是%dn,.vxs,outD,inD);l / 计算无向图或网的度in i,j; int u; for(i=0;G.vexum;+) u=0; for(=0;G.exum;j+) if(rsij!0&G.arcij!=axlue) Du+; pntf(%c的度是dn,G.vexs,Du); *参照p25设计深度有限搜索*vod DFMtix(MGraph ,i i,int n,ool*vstd) outG.ve visidi=tre; for(intj=;n;+) if(.rcsij!=&G.asi!=

6、axValu!visedj) FSMarx(G,j,,visted);/*参照26设计广度有限搜索*voi BSMatrx(MGah G,nt i,int , bool*visied) ot int axSie;int qMaize=0; infron=0,rear=0;otGvexsi visitedi=ue; q+rea=; while(ont!=rr) ront=(front+)%axize; int k=ont; for(int j=0; f(.arcsij!.arcsij!MaxValue&!visitedj) coutG.vsj; visiejtrue; rear=(ra+1)%M

7、xSie; qrear=j; voidmin()MGh G; int k; printf(请选择图的种类:0:有向图,:有向网,:无向图,:无向网. 请选择: sanf(%d,k); switch() /DG,D,G,ANcase 0: printf(构造有向图n Crateaph(G,DG); /采用数组邻接矩阵表示法,构造有向图 beak;cae 1: pit(构造有向网n teGrah(G,DN); / 采用数组邻接矩阵表示法,构造有向网AGG break;cse 2: rit(构造无向图n CreatGraph(,A); / 采用数组邻接矩阵表示法,构造无向图A brea; case3

8、: rintf(构造无向网nCreataph(G,AN); / 采用数组邻接矩阵表示法,构造无向网AGGbrek; PriMrh(); /打印图的邻接矩阵bool*visited=new boolGvexnm;it i; cut按图的邻接矩阵得到的深度优先遍历序列enl; for(i0;+) visteifals;DFSMatrx(G,G.vexnu,visite);按图的邻接矩阵得到的广度优先遍历序列endl; for(i=;i.exnum;i+) visitedi=false;FSMatix(G,0,G.vexnum,visited);outbc-cb#iclude#ncude hiclu

9、de dlb.h#include typdef car eteType; /顶点的名称为字符onst int MaxVerteNu =0;/图的最大顶点数cnst nt axEdeNum 100; /边数的最大值typedef int Wightype; /权值的类型cnt WghtType MxVaue =32; /权值的无穷大表示typedVreype VlstMaVerexNm;/顶点信息,定点名称 /邻接矩阵typedefenum G,D,G,ANGraphKind; /有向图,有向网,无向图,无向网strctEgeNod /链表边结点,表示弧int avex; 存放与头结点顶点有关的

10、另一个顶点在邻接表(数组)中的下标。 deoe*ext; /指向链表下一个结点 Weigypeinfo; / 权重值,或为该弧相关信息;typed struod /邻接表,表示顶点 VtxType data; / 顶点数据,顶点名称 EdgeNoe *frarc;/ 指向边结点链表第一个结点 od, jListMaVerxN;typeef suct AdjList vtices;nt vexum, arcnum; /图的当前顶点数和弧数 Graphd knd; / 图的种类标志Aap;oid CeateGraph_DG(ALGrph &G)/构造有向图G EdgeNoe *p; nt i,j,

11、k; char v,w; Gkind=DG; /图的种类 pritf(输入要构造的有向图的顶点数和弧数:scanf(%d,%d,&G.venum,&G.anu); ear(); pritf(依次输入图的顶点名称AC.等等:n); for (i0;.vexnum;i+)scan(G.ertcesi.data); G.veriesi.istarc=NULL; /初始化指向链表指针 getr();printf(尾顶点名-头顶点名 输入数据:如AB n); for (k=0;kG.arcum; ) caf(%-%c,&);gehar(); or(i=0; if(G.vtici.dat=v) break

12、;/查找出v在vertices中的位置 if(i=G.vxu) cerrvetex RROR!; fo(j=0;.vexnum;j) if(G.vecejdat=w) ba;/查找出w在veices中的位置i if(j.vexnum) errajvej; 置入弧尾顶点号 p-ino =MaVlue; /图的权值默认为无穷大 ext=.vrtiesi.stc; /插入链表 Gvricsi.irtarcp;/oid CreateGraph_DN(LGph &G)/构造有向网G EeNod *p; int,,k; chrv,w; Wightype q;G.ind=DN; /图的种类 prit(输入要

13、构造的有向网的顶点数和弧数: sn(%d,%d,G.xnum,&G.arcu); etcha(); pint(依次输入图的顶点名称ACD.等等:); fo(0;Gvxnum;i+) canf(cG.vertisi.daa);/构造顶点数据 G.verticeiistrc=NLL; /初始化指向链表指针gtcar(); prntf(头顶点名,权值输入数据:如A-B,8 n);for (k0;G.arcnum; k+) scanf(%c%c,%,&v,&,); gthar(); o(=0;.exu; +) if(G.verticesata=v) brea;/查找出v在ertics中的位置i f(=

14、G.vxn) crvere RROR!; for(j=0;vxnum;j+) if(Gertcsj.data=w)brak;/查找出w在ercs中的位置 if(G.ex) erifo =q; /图的权值默认为无穷大 p-ex=Gvertic.firta; G.veticesi.firstar=; vid Cateph(ALGrph &)构造无向图 EgeNde *; in i,k;carv,w;kid=G; /图的种类pritf(输入要构造的有向图的顶点数和弧数:scanf(%,%.enum,&.arnum); gechar(); rint(依次输入图的顶点名称D.等等: or (i=0;G.vexum;i+) scan(%c.vrest); G.eticesiirstrc=NULL; /初始化指向链表指针getchar();/过滤

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1