最新实验3图的基本操作PPT课件.ppt

上传人:豆**** 文档编号:56695540 上传时间:2022-11-03 格式:PPT 页数:19 大小:628.50KB
返回 下载 相关 举报
最新实验3图的基本操作PPT课件.ppt_第1页
第1页 / 共19页
最新实验3图的基本操作PPT课件.ppt_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《最新实验3图的基本操作PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新实验3图的基本操作PPT课件.ppt(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、进入夏天,少不了一个热字当头,电扇空调陆续登场,每逢此时,总会想起进入夏天,少不了一个热字当头,电扇空调陆续登场,每逢此时,总会想起那一把蒲扇。蒲扇,是记忆中的农村,夏季经常用的一件物品。记忆中的故那一把蒲扇。蒲扇,是记忆中的农村,夏季经常用的一件物品。记忆中的故乡,每逢进入夏天,集市上最常见的便是蒲扇、凉席,不论男女老少,个个手持乡,每逢进入夏天,集市上最常见的便是蒲扇、凉席,不论男女老少,个个手持一把,忽闪忽闪个不停,嘴里叨叨着一把,忽闪忽闪个不停,嘴里叨叨着“怎么这么热怎么这么热”,于是三五成群,聚在大树,于是三五成群,聚在大树下,或站着,或随即坐在石头上,手持那把扇子,边唠嗑边乘凉。孩

2、子们却在周下,或站着,或随即坐在石头上,手持那把扇子,边唠嗑边乘凉。孩子们却在周围跑跑跳跳,热得满头大汗,不时听到围跑跑跳跳,热得满头大汗,不时听到“强子,别跑了,快来我给你扇扇强子,别跑了,快来我给你扇扇”。孩。孩子们才不听这一套,跑个没完,直到累气喘吁吁,这才一跑一踮地围过了,这时子们才不听这一套,跑个没完,直到累气喘吁吁,这才一跑一踮地围过了,这时母亲总是,好似生气的样子,边扇边训,母亲总是,好似生气的样子,边扇边训,“你看热的,跑什么?你看热的,跑什么?”此时这把蒲扇,此时这把蒲扇,是那么凉快,那么的温馨幸福,有母亲的味道!蒲扇是中国传统工艺品,在是那么凉快,那么的温馨幸福,有母亲的味

3、道!蒲扇是中国传统工艺品,在我国已有三千年多年的历史。取材于棕榈树,制作简单,方便携带,且蒲扇的表我国已有三千年多年的历史。取材于棕榈树,制作简单,方便携带,且蒲扇的表面光滑,因而,古人常会在上面作画。古有棕扇、葵扇、蒲扇、蕉扇诸名,实即面光滑,因而,古人常会在上面作画。古有棕扇、葵扇、蒲扇、蕉扇诸名,实即今日的蒲扇,江浙称之为芭蕉扇。六七十年代,人们最常用的就是这种,似圆非今日的蒲扇,江浙称之为芭蕉扇。六七十年代,人们最常用的就是这种,似圆非圆,轻巧又便宜的蒲扇。蒲扇流传至今,我的记忆中,它跨越了半个世纪,圆,轻巧又便宜的蒲扇。蒲扇流传至今,我的记忆中,它跨越了半个世纪,也走过了我们的半个人

4、生的轨迹,携带着特有的念想,一年年,一天天,流向长也走过了我们的半个人生的轨迹,携带着特有的念想,一年年,一天天,流向长长的时间隧道,袅长的时间隧道,袅实验3图的基本操作实验目的1 掌握图的结构特征,以及两种存储结构的特点及适用范围2 图的查找,插入和删除算法3 掌握图的深度优先遍历算法4 掌握图的宽度优先遍历算法/函数原型声明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,in

5、t u,int v);void DFS(Graph g,int v,BOOL*visited);void BFS(Graph g,T v,BOOL*visited);/主函数主函数 void main()void main()char ch;char ch;int k;int k;do do printf(nnn);printf(nnn);printf(n=printf(n=主菜单主菜单=);=);printf(nn 1.printf(nn 1.打印图的邻接矩阵打印图的邻接矩阵););printf(“nn 2.printf(“nn 2.打印图的邻接表打印图的邻接表););printf(nn 3

6、.printf(nn 3.插入边插入边););printf(“nn 4.printf(“nn 4.删除表删除表););printf(“nn 5.printf(“nn 5.查找边查找边););printf(“nn 6.printf(“nn 6.深度优先遍历图深度优先遍历图););printf(“nn 7.printf(“nn 7.宽度优先遍历图宽度优先遍历图););printf(nn 0.printf(nn 0.结束程序运行结束程序运行););printf(n=);printf(n=);printf(n printf(n 请输入您的选择请输入您的选择(0,1,2,3,4,5,6,7);(0,1,

7、2,3,4,5,6,7);scanf(%d,&k);scanf(%d,&k);建立邻接表建立邻接表 函数函数CreateGraphCreateGraph构造一个有构造一个有n n个顶点,但个顶点,但不包含边不包含边的有向图。由于图的有向图。由于图的顶点数事先并不知道,所以我们使用动态存储分配的一维指针数组的顶点数事先并不知道,所以我们使用动态存储分配的一维指针数组。void CreateGraph(Graph*g,int n)void CreateGraph(Graph*g,int n)int i;int i;g-Vertices=n;g-Vertices=n;g-A=(ENode*)mall

8、oc(n*sizeof(ENode*);g-A=(ENode*)malloc(n*sizeof(ENode*);for(i=0;iAi=for(i=0;iAi=NULLNULL;0 01 1.n-1n-1.边的搜索边的搜索0 01 12 23 32 2 1 1 0 0 3 3 1 1 3 3 1 1 3 3 2 2 0 0 1,21,2是否有边?是否有边?/搜索边的函数搜索边的函数BOOL Exist(Graph g,int u,int v)BOOL Exist(Graph g,int u,int v)int n;int n;ENode*p;ENode*p;n=g.Vertices;n=g.V

9、ertices;if(if(u0un-1un-1)return FALSE;)return FALSE;for(p=g.Au;p&p-AdjVex!=v;for(p=g.Au;p&p-AdjVex!=v;p=p-NextArc;p=p-NextArc;if(!p)return FALSE;if(!p)return FALSE;return TRUE;return TRUE;插入边的函数插入边的函数BOOL Add(Graph*g,int u,int v,T w)int n;ENode*p;n=g-Vertices;if(u0|vn-1|vn-1|u=v|Exist(*g,u,v)printf(

10、BadInputn);return FALSE;p=NewENode(v,w,g-Au);g-Au=p;return TRUE;0 01 12 23 3 1 1 3 3 0 0 0 0 2 2 p p3 30 01 13 32 2插入邻接表中由指针插入邻接表中由指针AuAu所所指示的单链表的最前面指示的单链表的最前面ENode*NewENode(int vex,T weight,ENode*nextarc)ENode*NewENode(int vex,T weight,ENode*nextarc)ENode*p;ENode*p;p=(ENode*)malloc(sizeof(ENode);p=

11、(ENode*)malloc(sizeof(ENode);p-AdjVex=vex;p-AdjVex=vex;p-W=weight;p-W=weight;p-NextArc=nextarc;p-NextArc=nextarc;return p;return p;/删除边的函数删除边的函数BOOL Delete(Graph*g,int u,int v)BOOL Delete(Graph*g,int u,int v)int n=g-Vertices;int n=g-Vertices;ENode*p,*q;ENode*p,*q;if(u-1&u-1&uAu;q=NULL;p=g-Au;q=NULL;

12、while(p&p-AdjVex!=v)while(p&p-AdjVex!=v)q=p;p=p-NextArc;q=p;p=p-NextArc;if(p)if(p)if(q)q-NextArc=p-NextArc;if(q)q-NextArc=p-NextArc;else g-Au=p-NextArc;else g-Au=p-NextArc;free(p);free(p);return TRUE;return TRUE;printf(BadInputn);printf(BadInputn);return FALSE;return FALSE;0 01 12 23 3 1 1 3 3 0 0 0

13、 0 2 2 0 01 13 32 23 3P Pq=NULLq=NULL在由指针在由指针AuAu所指示的单所指示的单链表中,搜索链表中,搜索AdjVexAdjVex域的域的值为值为v v的边结点的边结点DFSDFS递归算法(递归算法(【程序程序10105 5】)。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

14、)BOOL visitedMaxSize;int i,n=g.Vertices;for(i=0;in;i+)visitedi=FALSE;for(i=0;iNextArc)for(w=g.Au;w;w=w-NextArc)if(!visitedw-AdjVex)if(!visitedw-AdjVex)printf(%d ,w-AdjVex);printf(%d ,w-AdjVex);visitedw-AdjVex=TRUE;visitedw-AdjVex=TRUE;Append(&q,w-AdjVex);Append(&q,w-AdjVex);u u的邻接顶点入队的邻接顶点入队访问队头元素访问队头元素u u的所有未访问过的所有未访问过的邻接点的邻接点结束语结束语谢谢大家聆听!谢谢大家聆听!19

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁