毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
基于MapX的最短路径分析方法的设计与实现 (4)
3.2.1 穷举搜索
1)深度优先搜索法
对树的先根遍历的推广称为深度优先搜索法。其基本方法是:设有一图G,由其某一顶点v0出发。选择一个与顶点v0相邻并且从未被访问过的顶点vi访问。继而从vi出发,选择一个与vi相邻并且从未被访问过的顶点vj进行访问。依次继续。如果当前被访问过的顶点的所有邻接顶点都已经被访问过,则退回到已被访问的顶点序列中最后一个拥有未被访问的相邻顶点的顶点w,从w出发按同样的方法向前遍历,直到图中所有顶点都被访问[9]。则得其递归算法如下:
Boolean visited[MAX_VERTEX_NUM]; //访问标志数组
Status (*VisitFunc)(int v); //VisitFunc是访问函数,对图的每个顶点调用该函数
void DFSTraverse (Graph G, Status(*Visit)(int v)){
VisitFunc = Visit;
for(v=0; v<G.vexnum; ++v)
visited[v] = FALSE; //访问标志数组初始化
for(v=0; v<G.vexnum; ++v)
if(!visited[v])
DFS(G, v); //对尚未访问的顶点调用DFS
}
void DFS(Graph G, int v){ //从第v个顶点出发递归地深度优先遍历图G
visited[v]=TRUE; VisitFunc(v); //访问第v个顶点
for(w=FirstAdjVex(G,v); w>=0; w=NextAdjVex(G,v,w))
//FirstAdjVex返回v的第一个邻接顶点,若顶点在G中没有邻接顶点,则返回空(0)。
//若w是v的邻接顶点,NextAdjVex返回v的(相对于w的)下一个邻接顶点。
//若w是v的最后一个邻接点,则返回空(0)。
if(!visited[w])
DFS(G, w); //对v的尚未访问的邻接顶点w调用DFS
}
2) 广度优先搜索法
树的按层次推广,称为图的广度优先搜索,其基本思想是:首先,访问初始顶点vi,将其标记为已经访问过,接着访问顶点vi的所以未被访问过的邻接点vi1,vi2,....,vit,并且将其均标记为已经访问,依照此法循环,直至图中所有和初始顶点vi有路径相通的顶点都已经被访问过为止。总结得其非递归算法如下:
Boolean visited[MAX_VERTEX_NUM]; //访问标志数组
Status (*VisitFunc)(int v); //VisitFunc是访问函数,对图的每个顶点调用该函数
共4页:
上一页
1
2
3
4
下一页
上一篇:
MATLAB立体仓库货位优化分配算法的研究
下一篇:
城市轨道交通线网规模预测+文献综述
热环境对磁记忆信号的影响ANSYS有限元分析
连续-离散型状态观测器设...
基于Kinect手势识别的遥操...
冷库GPRS的无线数据采集系统设计
基于51单片机自动门智能控制系统设计
STC89C52单片机盲人用时钟的设计+电路图+程序
PLC物料自动分拣系统的设计+源程序
浅谈传统人文精神茬大學...
拉力采集上位机软件开发任务书
中国古代秘书擅权的发展和恶变
谷度酒庄消费者回访调查问卷表
高校网球场馆运营管理初探【1805字】
《醉青春》导演作品阐述
多元化刑事简易程序构建探讨【9365字】
辩护律师的作证义务和保...
浅谈新形势下妇产科护理...
国内外无刷直流电动机研究现状