考研408 王道 数据结构 应用题整理(三)图的应用

4.2 图的数据结构定义

4.2.1 写代码:定义一个顺序存储的图(邻接矩阵实现)

#define MaxVertexNum 100
typedef char VertexType;
typedef int EdgeType;
typedef struct{
	VertexType Vex[MaxVertexNum];
	EdgeType Edge[MaxVertexNum][MaxVertexNum];
	int vexnum, arcnum;
}MGraph;

4.2.2 写代码:定义一个链式存储的图(邻接表实现)

typedef struct ArcNode{  //边表结点 
	int adjvex;
	struct ArcNode *node;
	int info; //边权值 
}ArcNode;
typedef struct VNode{   //顶点表结点 
	VertexType data;
	ArcNode *first;
}VNode,AdjList[MaxVertexNum];
typedef struct{         //邻接表 
	AdjList Vertices;
	int vexnum,arcnum;
}ALGraph;

4.4 图的应用:最短路径

4.4.2 文字描述:用BFS算法求单源最短路径的过程

BFS算法求单源最短路径仅针对无权图

int d[MaxEdgeNum];
void BFS_MIN_Distance(Graph G, int u){
	for(int i=0;i<G.vexnum;i++) d[i]=; //初始化路径长度 
	visited[u]=true; d[u]=0;
	EnQueue(Q,u);
	while(!QueueIsEmpty(Q)){
		DeQueue(Q,u);
		for(w=FirstNeighbor(G,u);w>=0;w=NextNeighbor(G,u,w)){
			if(!visited[w]){
				visited[w]=true;
				d[w]=d[u]+1;
				EnQueue(Q,w);
			}
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nabobess

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值