网站建设电话营销郑州市建设局官网
news/
2025/10/4 16:22:43/
文章来源:
网站建设电话营销,郑州市建设局官网,做venn的网站,网易企业邮箱登录页本章学习了图的结构及应用#xff0c; 首先是图的分类#xff0c;图分为无向图、有向图、完全图、连通图、强连通图、带权图、稀疏图、稠密图等等。 图的存储方式有两大类#xff0c;以边集合方式的表示法和以链接方式的表示法。其中#xff0c;以边集合方式表示的为邻接矩… 本章学习了图的结构及应用 首先是图的分类图分为无向图、有向图、完全图、连通图、强连通图、带权图、稀疏图、稠密图等等。 图的存储方式有两大类以边集合方式的表示法和以链接方式的表示法。其中以边集合方式表示的为邻接矩阵借助二维数组来表示元素之间的关系实现较为简单以链接方式表示的包括邻接表、十字链表和邻接多重表属于链式存储结构实现较为复杂。 接下来是图的遍历算法图的遍历算法有两种包括深度优先搜索遍历和广度优先搜索遍历。 深度优先搜索遍历类似于树的先序遍历借助于栈结构来实现。 void DFS(Graph a,int b) //深度优先搜索 {visited[b]true; //令顶点对应的visited数组为true表示该顶点已被访问过 coutb ; //输出顶点编号及空格 for(int i0;ia.vexnum;i){if(a.arcs[b][i]1 visited[i]false)DFS(a,i); //若顶点对应的邻接点未被访问则递归调用DFS函数 }} DNF 广度优先搜索遍历类似于树的层次遍历借助队列结构来实现。 void BFS(Graph a,int b) //广度优先搜索 {int temp; //定义参数 while(!q.empty()) //若队列不为空 {tempq.front(); //取队头元素值为temp q.pop(); //队头元素出队 couttemp ; //输出temp值及空格 for(int i0;ia.vexnum;i){if(a.arcs[temp][i]1 visited[i]false) //若顶点对应的邻接点未被访问则邻接点入队 {q.push(i); //邻接点入队 visited[i]true; //邻接点对应的visited数组取true表示已被访问 }}visited[b]true; //第一次入队的顶点对应的visited数组值取true表示已被访问}} BFS 然后是图的应用比较常用的包括构造最小生成树算法、求解最短路径算法 构造最小生成树的算法有普里姆算法和克鲁卡斯算法其中 普里姆算法的核心是归并点时间复杂度是O(n2)适用于稠密网 克鲁斯卡尔算法是归并变时间复杂度是O(elog2e适用于稀疏网。 最短路径算法包括迪杰斯特拉算法和弗洛伊德算法其中 迪杰斯拉特算法是求从某个源点到其余各顶点的最短路径按路径长度递增的次序产生最短路径时间复杂度为O(n2) 弗洛伊德算法是求每一对顶点之间的最短路径时间复杂度为O(n3) 个人感觉图这一章概念很多算法也很多要多花时间看书弄懂书上的概念和算法。 转载于:https://www.cnblogs.com/likangwenn/p/10891478.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/927328.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!