图图类-遍历-应用ppt课件.ppt

图图类-遍历-应用ppt课件.ppt

ID:58516106

大小:563.00 KB

页数:87页

时间:2020-10-21

图图类-遍历-应用ppt课件.ppt_第1页
图图类-遍历-应用ppt课件.ppt_第2页
图图类-遍历-应用ppt课件.ppt_第3页
图图类-遍历-应用ppt课件.ppt_第4页
图图类-遍历-应用ppt课件.ppt_第5页
资源描述:

《图图类-遍历-应用ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Chapter12图中国地质大学信息工程学院2021/9/10112.1图的基本概念和基本术语12.2图的应用示例12.4抽象数据类型Graph和Diagraph12.5无向图、有向图及网络的描述12.7图的类定义12.8图的遍历12.10图的搜索算法12.11图的应用内容提要212.7类定义无权有向图和无向图可以看作每条边的权是1的加权有向图和无向图。无向图可以看作:可以看作边(i,j)和边(j,i)都存在的有向图;也可以看作所有边的权均为1的加权图;或者看作所有边的权为1,若边(i,j)存在,则边(j,i)也存在的加权有向图。3邻接矩阵描述的图类关系AdjacencyWDigra

2、phAdjacencyWGraphAdjacencyDigraphAdjacencyGraphAdjacencyWDigraph(加权有向图的耗费邻接矩阵)AdjacencyWGraph(加权图)AdjacencyDigraph(有向图)AdjacencyGraph(无向图)412.7.2邻接矩阵类——加权有向图的耗费邻接矩阵(程序12-1)templateclassAdjacencyWDigraph{friendAdjacencyWGraph;public:AdjacencyWDigraph(intVertices=10,TnoEdge=0);~Adjacen

3、cyWDigraph(){Delete2DArray(a,n+1);}boolExist(inti,intj)const;intEdges()const{returne;}intVertices()const{returnn;}AdjacencyWDigraph&Add(inti,intj,constT&w);5AdjacencyWDigraph&Delete(inti,intj);intOutDegree(inti)const;intInDegree(inti)const;private:TNoEdge;//用于没有边存在的情形intn;//顶点数目inte;//边数T

4、**a;//二维数组};6AdjacencyWDigraph构造函数templateAdjacencyWDigraph::AdjacencyWDigraph(intVertices,TnoEdge){//构造函数n=Vertices;e=0;NoEdge=noEdge;Make2DArray(a,n+1,n+1);//初始化为没有边的图for(inti=1;i<=n;i++)for(intj=1;j<=n;j++)a[i][j]=NoEdge;}Θ(n2)7判断边是否存在Exist(inti,intj)templateboolAdjacencyW

5、Digraph::Exist(inti,intj)const{//边(i,j)存在吗?if(i<1

6、

7、j<1

8、

9、i>n

10、

11、j>n

12、

13、a[i][j]==NoEdge)returnfalse;returntrue;}函数Exist的代码不能区分下面两种情况:-i或j是否为有效顶点;-边(i,j)是否存在。8添加边:AddtemplateAdjacencyWDigraph&AdjacencyWDigraph::Add(inti,intj,constT&w){//如果边(i,j)不存在,则将该边加入有向图中if(i<1

14、

15、j<1

16、

17、i>n

18、

19、j>n

20、

21、i==

22、j

23、

24、a[i][j]!=NoEdge)throwBadInput();a[i][j]=w;e++;return*this;}Θ(1)9删除边:DeletetemplateAdjacencyWDigraph&AdjacencyWDigraph::Delete(inti,intj){//删除边(i,j).if(i<1

25、

26、j<1

27、

28、i>n

29、

30、j>n

31、

32、a[i][j]==NoEdge)throwBadInput();a[i][j]=NoEdge;e--;return*this;}Θ(1)10求顶点出度:OutDegreetemplateintAdj

33、acencyWDigraph::OutDegree(inti)const{//返回顶点i的出度if(i<1

34、

35、i>n)throwBadInput();//计算顶点i的出度intsum=0;for(intj=1;j<=n;j++)if(a[i][j]!=NoEdge)sum++;returnsum;}Θ(n)遍历第i行中有效边的条数11求顶点入度:InDegreetemplateintAdjacencyWDigraph::InDe

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

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

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