- 16
- 0
- 约4.75千字
- 约 7页
- 2016-11-10 发布于安徽
- 举报
图的深度优先搜索遍历算法分析和其应用.doc
图的深度优先搜索遍历算法分析及其应用
摘 要:文章介绍了图论,图的基本概念及其图的表示方法。详细的分析了图中以邻接表为存储结构进行的图的深度优先搜索遍历的算法,并且在VC++环境中实现其算法的过程,对运行记过做了一定量的分析,最后介绍了基于该算法的一些应用。
关键词:图;深度优先搜索;遍历;算法
图论〔Graph Theory〕是数学的一个分支。它以图为研究对象。图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间具有这种关系。
Graph)是一种较线性表和树更复杂的数据结构,图形结构中,结点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关。因此,在研究有关图的问题时,要考虑图中每个顶点的信息,访问图中的各个顶点,而访问图中各个顶点的操作过程即使图的遍历,图的遍历算法是求解图的连通性问题,拓扑排序和求关键路径等算法的基础。
1 图的三元组定义
图G是一个三元组由集合V,E和关联函数组成,记为:G=(V,E,W(G))。其中V是顶点的集合,表示V(G)={V1,V2,V3,……Vn},V(G)≠NULL。E是V中的点偶对的有穷集,表示为E(G)={e1,e2,e3……em},其中ei为V j,Vt或{Vj,Vt},若ei为{Vj,Vt},称ei为以V j 和Vt为端点的无向边;若ei为Vj,Vt,称ei为以V j为起点,Vt为终点的有向边;W(G)称为E→VxV的关联函数。
2图的存储结构
图的存储结构除了要存储图中各个顶点的本身的信息外,同时还要存储顶点与顶点之间的所有关系(边的信息),因此,图的结构比较复杂,很难以数据元素在存储区中的物理位置来表示元素之间的关系,但也正是由于其任意的特性,故物理表示方法很多。常用的图的存储结构有邻接矩阵、邻接表、十字链表和邻接多重表。邻接表是图的一种链式存储结构。对图的每个顶点建立一个单链表(n个顶点建立n个单链表),第i个单链表中的结点包含顶点Vi的所有邻接顶点。
图1 无向图G
该图的G的邻接表表示如下:
为了便于理解,本文以无向图G作为具体示例(如图1所示),给出以邻接表进行存储的图的数据结构。
现将图G的各顶点进行编号,其对应的邻接表如图2所示:
V1 V2 V3 V4 V5 3 1 ∧
4
2 0 ∧
4 3
1 ∧
2
0 ∧ 1 ∧ 2
图2图G的邻接表表示
2.1邻接表的数据结构定义,将图G采用邻接表存储。其结构有:
#include iostream.h
int *visited; //存放当前结点是否遍历
typedef int **MGraph;//定义一个二维数组存放邻接矩阵,暂不定义矩阵大小,数据元素类型为整型
//把矩阵看作数组元素是一维数组的一个一维数组
struct ArcNode{ //定义邻接表中的边结点类型
int adjvex; //邻接点位置
int weight; //权值
ArcNode *nextarc; //指向下一个边结点的链域
};
struct VNode{
int data;
ArcNode *nextarc;
};//邻接表表头结点
typedef VNode *adjlist;
//邻接矩阵存储方式
void InitGraph(MGraph G,int n) //建立n行n列的二维数组
{
G=new int *[n];//分配第一维空间
int i,j;
for(i=0;in;i++)
G[i]=new int[n];//分配第二维空间
for(i=0;in;i++)
for(j=0;jn;j++)
G[i][j]=0;//初始情况下没有连接
}
2.2构造算法:
void CreateGraph(MGraph G,int n){//建立无向图,其它形式的图可以自己建立
int i,j,e;
cout输入无向图中边的总数量;
cine;
cout\n输入每条边的起点和终点序号(注:结点编号范围为0~n-1):\n;
for(int k=1;k=e;k++){
cout\n第k对边:;
cinij;
if(in||jn||i0||j0) return;
G[i][j]=G[j][i]=1;}
}
//初始化
void InitAdj(adjlist G,int n)
{
G=new VNode[n];
for(int i=0;in;
您可能关注的文档
最近下载
- 个人简历表格填写2021简历模板.docx VIP
- 针灸推拿学习题库(附答案).docx VIP
- 毕业设计(论文)-五边形凸台零件铣削加工.doc VIP
- 2026届山东省淄博市高三上学期期末考试(摸底质量检测)历史试题(含答案).docx VIP
- 常见词组固定搭配.pdf VIP
- 2023年山东泰安中考地理试题及答案.pdf VIP
- 胎动管理专家共识最新2025.pptx
- (小学综合实践课标复习题全.doc VIP
- 0—3岁婴幼儿心理发展与教育 第四章 0-3岁婴幼儿心理发展与教育 课件PPT.pptx VIP
- 0—3岁婴幼儿心理发展与教育 第三章 0-3岁婴幼儿心理发展与教育 课件PPT.pptx VIP
原创力文档

文档评论(0)