ImageVerifierCode 换一换
你正在下载:

图.docx

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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

图.docx

1、图 图1、实验目的 1. 掌握图的基本存储方法。 2. 掌握有关图的操作算法并用高级语言实现。 3. 熟练掌握图的两种搜索路径的遍历方法。 4. 掌握图的有关应用,2、实验要求 1. 认真阅读和掌握本实验的程序。 2. 上机运行本程序。 3. 保存很打印出程序的运行结果,并结合程序进行分析。 4. 按照对图的操作需要,重新改写主程序并运行,打印出文件清单和运行结果。3、实验内容 1. 建立无向图的邻接矩阵存储并输出。 2. 建立图的邻接表存储并在此基础上实现图的深度优先遍历和广度优先遍历。4、解题思路分析 1. 无向图的邻接矩阵是对称的,而无向图的邻接矩阵不一定对称。因此,用邻接矩阵来表示一个

2、具有n个顶点的有向图时,要用n2个单元存储邻接矩阵;对有n个顶点的无向图,则只需存入下三角矩阵,故只需使用n(n+1)/2个存储单元。 2. 邻接表表示法是图的一种链式分配的存储结构,包括链表和向量。在邻接表中的每个结点结点(表结点)由两个域组成:邻接的顶点域(vertex)和链域(next);每个链表的上边附设一个表头结点,在表头结点中,除了设有链域(first)用于指向链表中的第一个结点之外,还设有用于存储顶点Vi名4或其他有关信息的数据域(data)。5、程序清单 1. #include#include#define MAX 20typedef int VexType;typedef V

3、exType MgraphMAXMAX;/*函数原型声明*/void creat_mg(Mgraph G);void output_mg(Mgraph G);Mgraph G1;int n,e,v0;/*主函数*/void main()creat_mg(G1);output_mg(G1);/*建立无向图邻接矩阵*/void creat_mg(Mgraph G)int i,j,k;printf(n请输入无向图的顶点数和边数,如(6,5):);scanf(%d,%d,&n,&e);for(i=1;i=n;i+)for(j=1;j=n;j+) Gij=0;/*如果是网,Gij=0改为Gij=3276

4、7(无穷)*/for(k=1;k=e;k+) printf (n请输入每条边的两个顶点编号,如(2,5):);scanf(%d,%d,&i,&j);Gij=1;Gij=1;/*输出邻接矩阵*/void output_mg(Mgraph G)int i,j;for(i=1;i=n;i+)printf(n);for(j=1;j=n;j+) printf(%5d,Gij);printf(n); 2. #include#include#define MAX 20typedef int VexType;typedef struct Vnode VexType data; struct Vnode *ne

5、xt;Vnode;typedef Vnode LgraphMAX;typedef struct int vMAX; int front; int rear;Queue;void creat_L(Lgraph G);void output_L(Lgraph G);void dfsL(Lgraph G,int v);void bfsL(Lgraph G,int v);Lgraph Ga;int n,e,visitedMAX;void main() int v1,i; for(i=0;iMAX;i+)visitedi=0; creat_L(Ga); output_L(Ga); printf(n请输入

6、深度优先遍历的出发点:); scanf(%d,&v1); printf(n深度优先遍历的结果为:); dfsL(Ga,v1); for(i=0;iMAX;i+)visitedi=0; printf(n请输入广度优先遍历的出发点:); scanf(%d,&v1); printf(n广度优先遍历的结果为:); bfsL(Ga,v1);void creat_L(Lgraph G) Vnode *p,*q; int i,j,k; printf(n请输入图的顶点数和边数:); scanf(%d,%d,&n,&e); for(i=1;i=n;i+)Gi.data=i;Gi.next=NULL; for(k

7、=1;kdata=i; p-next=Gi.next;Gi.next=p; q=(Vnode *)malloc(sizeof(Vnode); q-data=j; q-next=Gi.next;Gi.next=q; void output_L(Lgraph G) int i; Vnode *p; for(i=1;idata);p=p-next; void initqueue(Queue *q) q-front=-1; q-rear=-1;int quempty(Queue *q) if(q-front=q-rear) return 1; else return 0;void enqueue(Qu

8、eue *q,int e) if(q-rear+1)%MAX=q-front) printf(队列满!n); else q-rear=(q-rear+1)%MAX; q-vq-rear=e; int dequeue(Queue *q) int t; if(q-front=q-rear) printf(队列空!n);return 0; else q-front=(q-front+1)%MAX; t=q-vq-front; return t; void dfsL(Lgraph G,int v) Vnode *p; printf(%d-,Gv.data); visitedv=1; p=Gv.next

9、; while(p)v=p-data; if(visitedv=0)dfsL(G,v); p=p-next; void vfsL(Lgraph g,int v) int x; Vnode *p; Queue *q=(Queue *)malloc(sizeof(Queue); initqueue(q); printf(n %d-,gv.data); visitedv=1; enqueue(q,v); while(!quempty(q) x=dequeue(q); p=gv.next; while(p) v=p-data; if(visitedv=0) printf(%d-,gv.data); visitedv=1; enqueue(q,v); p=p-next; printf(n);

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

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