欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    实验3 图的基本操作.ppt

    • 资源ID:5534113       资源大小:214.01KB        全文页数:18页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    实验3 图的基本操作.ppt

    图 的基本算法实现,实验目的,1 掌握图的结构特征,以及两种存储结构的特点及适用范围2 图的查找,插入和删除算法3 掌握图的深度优先遍历算法4 掌握图的宽度优先遍历算法,实验要求,认真阅读和掌握本实验的程序上机运行程序。保存和打印出程序的运行结果,并结合程序进行分析。按照图的操作需要,重新组合程序并运行,打印出文件清单和运行结果。,实验内容,1 输入图的顶点集合和边集合,建立图的邻接矩阵,并打印。2输入图的顶点集合和边集合,建立图的邻接表,并打印。3查找指定边4删除指定边5插入指定边6图的深度优先遍历算法BFS(递归算法)。7图的深度优先遍历算法DFS(递归算法)。,运行结果:=主菜单=1.打印图的邻接矩阵 2.打印图的邻接表 3.插入边 4.删除边 5.查找边 6.深度优先遍历图 7.宽度优先遍历图 0.结束程序运行=请输入您的选择(0,1,2,3,4,5,6,7)1请输入图的节点编号(如1):0,1,2,3请继续输入图的边(如1,2):0,1请继续输入图的边(如1,2):0,3请继续输入图的边(如1,2):1,3请继续输入图的边(如1,2):1,2请继续输入图的边(如1,2):2,3请继续输入二叉树各结点的编号和对应的值:0,#,=主菜单=1.打印图的邻接矩阵 2.打印图的邻接表 3.插入边 4.删除边 5.查找边 6.深度优先遍历图 7.宽度优先遍历图 0.结束程序运行=请输入您的选择(0,1,2,3,4,5,6,7)0,=主菜单=1.打印图的邻接矩阵 2.打印图的邻接表 3.插入边 4.删除边 5.查找边 6.深度优先遍历图 7.宽度优先遍历图 0.结束程序运行=请输入您的选择(0,1,2,3,4,5,6,7,8,9,10)2,0123,1,3,0,0,2,程序清单,#include#include#define M 100typedef struct enode int AdjVex;T W;struct enode*NextArc;ENode;/边节点 typedef struct graph int Vertices;ENode*A;Graph;/图,/函数原型声明BOOL Exist(Graph g,int u,int v);BOOL Add(Graph*g,int u,int v,T w);ENode*NewENode(int vex,T weight,ENode*nextarc);BOOL Delete(Graph*g,int u,int v);void DFS(Graph g,int v,BOOL*visited);void BFS(Graph g,T v,BOOL*visited);,/主函数void main()char ch;int k;do printf(nnn);printf(n=主菜单=);printf(nn 1.打印图的邻接矩阵);printf(“nn 2.打印图的邻接表);printf(nn 3.插入边);printf(“nn 4.删除表);printf(“nn 5.查找边);printf(“nn 6.深度优先遍历图);printf(“nn 7.宽度优先遍历图);printf(nn 0.结束程序运行);printf(n=);printf(n 请输入您的选择(0,1,2,3,4,5,6,7);scanf(%d,建立邻接表 函数CreateGraph构造一个有n个顶点,但不包含边的有向图。由于图的顶点数事先并不知道,所以我们使用动态存储分配的一维指针数组。,void CreateGraph(Graph*g,int n)int i;g-Vertices=n;g-A=(ENode*)malloc(n*sizeof(ENode*);for(i=0;iAi=NULL;,边的搜索,3,2,0,1,2是否有边?,/搜索边的函数BOOL Exist(Graph g,int u,int v)int n;ENode*p;n=g.Vertices;if(un-1)return FALSE;for(p=g.Au;p,插入边的函数BOOL Add(Graph*g,int u,int v,T w)int n;ENode*p;n=g-Vertices;if(un-1|vn-1|u=v|Exist(*g,u,v)printf(BadInputn);return FALSE;p=NewENode(v,w,g-Au);g-Au=p;return TRUE;,1,3,0,p,3,插入邻接表中由指针Au所指示的单链表的最前面,ENode*NewENode(int vex,T weight,ENode*nextarc)ENode*p;p=(ENode*)malloc(sizeof(ENode);p-AdjVex=vex;p-W=weight;p-NextArc=nextarc;return p;,/删除边的函数BOOL Delete(Graph*g,int u,int v)int n=g-Vertices;ENode*p,*q;if(u-1,0123,1,3,0,P,q=NULL,在由指针Au所指示的单链表中,搜索AdjVex域的值为v的边结点,DFS递归算法(【程序105】)。void DFS(Graph g,int v,BOOL*visited)ENode*w;visitedv=TRUE;printf(%d,v);for(w=g.Av;w;w=w-NextArc)if(!visitedw-AdjVex)DFS(g,w-AdjVex,visited);void Traversal_DFS(Graph g)BOOL visitedMaxSize;int i,n=g.Vertices;for(i=0;in;i+)visitedi=FALSE;for(i=0;in;i+)if(!visitedi)DFS(g,i,visited);,对V未标记的邻接点嵌套调用DFS函数,对尚未标记的顶点调用DFS函数,2、BFS算法,采用邻接表作为图的存储结构,其宽度优先搜索的程序如下:,#includequeue.hvoid BFS(Graph g,T v,BOOL*visited)ENode*w;T u;Queue q;CreateQueue(,入队,while(!IsEmpty(q)QueueFront(q,u的邻接顶点入队,

    注意事项

    本文(实验3 图的基本操作.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开