当前位置:首页 > 手工 >

邻接矩阵的深度优先生成树怎么画(深度优先生成树画法)

来源:原点资讯(www.yd166.com)时间:2023-05-05 08:40:12作者:YD166手机阅读>>

数据结构是计算机专业考研重点内容,大部分院校都是考到了数据结构,其中基于邻接矩阵存储的图的创建和深度优先遍历算法是其中的重点难点内容,因此中公考研计算机教研室为大家整理的“数据结构考研重难点解析:基于邻接矩阵存储的图的创建和深度优先遍历算法”,希望对大家有所帮助!

一、图的创建

1.创建基于邻接矩阵存储的图的结构体,主要由4个部分组成:顶点集合vex、边集合edge、顶点个数n、边的数目e。

定义如下:

typedef struct AdjMatrix{

char vex[100];

int edge[100][100];

int n;

int e;

}Adj;

2.定义创建图的基本操作,函数void create(Adj &G);该函数无返回值,参数为图的结构体变量,由于要对它进行创建,所以 “&”符号;

具体步骤如下:循环地输入每一个顶点元素,当输入为‘#’时停止输入,并记录输入结点个数,再循环地输入边,输入方式为边左右两边的下标,并记录输入边的数目。

代码如下:

void create(Adj &G)

{

int i,j,vi,vj,count=0;

char ch;

printf("请输入顶点:\n");

for(i=0;(ch=getchar())!='#';i )

{

G.vex[i]=ch;

}

G.n=i;

for(i=0;i<G.n;i )

{

for(j=0;j<G.n;j )

G.edge[i][j]=0;

}

printf("请输入边:\n");

scanf("%d%d",&vi,&vj);

while(vi>=0)

{

G.edge[vi][vj]=1;

scanf("%d%d",&vi,&vj);

count ;

}

G.e=count;

}


二、深度优先遍历(DFS)

深度优先遍历(Depth First Search)遍历类似于树的先根遍历。它是从图中某个顶点v出发,访问此顶点,然后依次从v未被访问的邻接点出发深度优先遍历图,直至图中所有和v有路径相通的顶点都被访问到;若此时图中尚有顶点未被访问,则另选图中一个未被访问的顶点作为起始点,重复上述过程,直到图中所有顶点都被访问为止。

1.首先创建访问数组int visitDFS[10];最多有10个顶点;

2.其次创建深度优先访问函数void DFSTravel(Adj G),它无返回值,有一个参数就是图变量,具体步骤为:给访问数组赋初始值,全部设置为0;通过深度优先访问方式遍历每一个未被访问过的顶点,修改访问数组对应位置的值为1,直到所有顶点都访问一次结束。

代码如下:

int visetDFS[10];

void DFSTravel(Adj G)

{

int i;

for(i=0;i<G.n;i )

visetDFS[i]=0;

for(i=0;i<G.n;i )

{

if(!visetDFS[i])

DFS(G,i);

}

}

3.最后创建深度优先访问算法void DFS(Adj G,int i);该算法无返回值,有两个参数图变量以及要访问的顶点下标。

具体步骤如下:给传进来的顶点的访问数组设置为已访问(1),访问该顶点,通过for循环找到该顶点的所有邻接点,从第一个不为0的邻接点出发,通过递归的方式来找它的邻接点。

代码如下:

void DFS(Adj G,int i)

{

visetDFS[i]=1;

printf("%c ",G.vex[i]);

for(int j=0;j<G.n;j )

{

if(G.edge[i][j]!=0&&!visetDFS[j])

DFS(G,j);

}

}

栏目热文

画出邻接矩阵对应的图(画出该图的邻接矩阵)

画出邻接矩阵对应的图(画出该图的邻接矩阵)

图的概念介绍得差不多了,大家可以消化消化再继续学习后面的内容。如果没有什么问题的话,我们就继续学习接下来的内容。当然,这...

2023-05-05 08:56:16查看全文 >>

邻接矩阵表示法流程图(邻接矩阵示意图怎么画)

邻接矩阵表示法流程图(邻接矩阵示意图怎么画)

线性存储元素时,元素的关系也同时确定了。而非线性数据结构就不同了,需要同时考虑存储数据元素和数据元素的逻辑关系。例如,图...

2023-05-05 08:17:20查看全文 >>

矩阵邻接图(怎么根据图写邻接矩阵)

矩阵邻接图(怎么根据图写邻接矩阵)

邻接矩阵邻接矩阵概念无向图和有向图在邻接矩阵中的表示方法:有向图和无向图的表示方法无向图和有向图大同小异,在这里只以无向...

2023-05-05 08:38:54查看全文 >>

任意两点互通怎么画邻接矩阵(怎么知道一个图的邻接矩阵)

任意两点互通怎么画邻接矩阵(怎么知道一个图的邻接矩阵)

图(Graph)是由顶点(Vertex)的有穷非空集合和顶点之间边(Edge)的集合组成,通常表示为:G(V,E),其中...

2023-05-05 08:26:42查看全文 >>

邻接矩阵图详解(图的邻接矩阵是怎样的)

邻接矩阵图详解(图的邻接矩阵是怎样的)

本文约2500字,建议阅读5分钟本文对图神经网络基本概念以及典型的模型做简要的介绍。图(Graph)是一种数据结构, 能...

2023-05-05 09:04:06查看全文 >>

梦幻西游手游哪个门派更吃香(梦幻西游手游哪个门派简单无脑)

梦幻西游手游哪个门派更吃香(梦幻西游手游哪个门派简单无脑)

在这个《梦幻西游》手游中每个职业都有自己的优势也有劣势,内测人最多的门派是龙宫,也是升级最快的门派,上手非常容易,技能使...

2023-05-05 08:17:34查看全文 >>

梦幻西游手游哪个职业吃香(梦幻最新5开最佳组合)

梦幻西游手游哪个职业吃香(梦幻最新5开最佳组合)

梦幻西游:谁才是最强PK门派?人族笑翻了我一向不关注PK,不过近期大致看了几个武神坛相关的报道,惊奇的发现,居然好几个队...

2023-05-05 08:21:24查看全文 >>

梦幻西游手游玩哪个门派后期吃香(梦幻西游手游后期哪些门派吃香)

梦幻西游手游玩哪个门派后期吃香(梦幻西游手游后期哪些门派吃香)

作为2022上半年战斗平衡调整以来的首次大赛,上周末进行的第74届武神坛天极战神组的比赛可谓是精彩纷呈。不同于此前版本尽...

2023-05-05 08:39:39查看全文 >>

梦幻西游手游什么门派吃香好混(梦幻西游手游哪个门派平民玩最好)

梦幻西游手游什么门派吃香好混(梦幻西游手游哪个门派平民玩最好)

梦幻西游:哪个门派的玩家最多?无底洞领衔你们都玩什么门派呢?上次四月大改,经脉的改动我按照种族的区分,发了三个视频,明显...

2023-05-05 08:31:14查看全文 >>

梦幻西游手游等级高哪个门派吃香(梦幻西游手游选哪个门派最好)

梦幻西游手游等级高哪个门派吃香(梦幻西游手游选哪个门派最好)

大家好,我是阿盐。昨天我分享了自己关于高等级五开组合版本答案的一些见解,得到了很多粉丝朋友的反馈和建议。今天我们就这些反...

2023-05-05 08:53:40查看全文 >>

文档排行