赣州建设公司网站软文营销案例200字
赣州建设公司网站,软文营销案例200字,wordpress 静态内容,网站设计制作中心一.图的遍历
图的遍历需要解决的关键问题
1.在图中#xff0c;如何选取遍历的起始顶点#xff1f;
从编号小的顶点开始 在线性表中#xff0c;数据元素在表中的编号就是元素在序列中的位置#xff0c;因而其编号是唯一的。在树中#xff0c;将节点按层序编号#xff0…一.图的遍历
图的遍历需要解决的关键问题
1.在图中如何选取遍历的起始顶点
从编号小的顶点开始 在线性表中数据元素在表中的编号就是元素在序列中的位置因而其编号是唯一的。在树中将节点按层序编号由于树具有层次性因而其层序编号也是唯一的。在图中任何两个顶点之间都可能存在边顶点时没有确定的先后次序的所以顶点的编号不唯一。 为了定义操作的方便将图中的顶点安任意顺序排列起来比如按顶点的存储顺序。 2.从某个起始点可能到达不了所有其它顶点怎么办
多次调用从某顶点出发遍历图的算法 3.因图中可能存在回路某些顶点可能会被重复访问那么如何避免不会因回路而陷入死循环呢
附设访问标志数组visited[n] n为结点个数 4.在图中一个顶点可以和其它多个顶点相连当这样的顶点访问过后如何选取下一个要访问的顶点呢 深度优先遍历广度优先遍历 二.深度优先遍历
1.基本思想
1访问顶点v
2从v的未被访问的邻接点中选取一个顶点w从w出发进行深度优先遍历
3重复上述两步直至图中所有和v有路径相通的顶点都被访问到。 2.伪代码 1.访问顶点vvisited[v]1;2.w顶点v的第一个邻接点3.whilew存在3.1 ifw未被访问从顶点w出发递归执行该算法3.2w顶点v的下一个邻接点 3.代码实现
3.1 邻接矩阵
templateclass T
void MGraphT::DFSTraverse(int v){bool visited[vertexNum]false;//设置标志数组int w,i,count0;coutvertex[v]endl;//访问顶点vvisited[v]true;//标志数组置为truecount;//结点访问一次计数器加一for(i0;ivertexNum;i){if(arc[v][i]!visited[i]){//存在边且未被访问过wi;//更新w的值DFSTraverse(w);//再次深度优先搜索w}if(countvertexNum){//所有结点都被访问过返回减少执行次数return;}}}
3.2 邻接表
template class T
void ALGraphT::DFSTraverse(int v){int w,i0,count0;bool visited[vertexNum]false;struct ArcNode *padjList[v].firstEdge;coutadjList[v].vertexendl;//访问节点vvisited[v]true;//标志数组置为truecount;if(countvertexNum){return;}while(p){if(!visited[p-adjvex]){wp-adjvex;DFSTraverse(w);}else{pp-next;}}
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/88797.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!