- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构上机实践6
数据结构上机实践6
实践目的
掌握图的存储结构;掌握有关图的操作算法并能用C语言实现。
预备知识
1.图的邻接表存储结构描述如下:
#define VEX_NUM 10 /*顶点数目*/
typedef char Vextype; /*顶点类型*/
typedef struct arcnode{
int adjvex;
struct arcnode *nextarc;
}ArcNode; /*表结点*/
typedef struct vnode{
Vextype data;
ArcNode *firstarc;
}VNode; /* 头结点*/
typedef VNode ALgraph[VEX_NUM]; /*图的邻接链表*/
2.基本算法
(1)图的建立算法
void creat_Mgraph( Mgraph *G,int e){
/*建立无向图的邻接矩阵G ,e为边的数目*/
for (i=0;iVEX_NUM;++i)
scanf(%c,G-vexs[i]); /*输入顶点信息*/
for (i=0;iVEX_NUM;++i)
for (j=0;jVEX_NUM;++j)
G-arcs[i][j]=0;
for(k=0;ke;k++){
scanf(%d,%d,i,j); /*输入表示边(vi,vj)的顶点序号i,j*/
G-arcs[i][j]=1;G-arcs[j][i]=1;
}
}/* creat_Mgraph */
(2)图的遍历
int visited[NAX_VEX]={0};
void Dfs_m( Mgraph *G,int i){
/* 从第i个顶点出发深度优先遍历图G,G以邻接矩阵表示*/
printf(%3c,G-vexs[i]); /*访问顶点vi*/
visited[i]=1;
for (j=0;jVEX_NUM;j++)
if((G-arcs[i][j]==1) (!visited[j]))
Dfs_m(G,j);
} /*Dfs_m */
应用范例——从某源点到其余顶点之间的最短路径
#define VEX_NUM 6
#define MAXINT 1000
#include stdio.h
typedef char Vextype;
typedef struct {
Vextype vexs[VEX_NUM];
int arcs[VEX_NUM][VEX_NUM];
}Mgraph;
void creat_Mgraph( Mgraph *G,int e){
int i,j,w,k;
for (i=0;iVEX_NUM;++i)
for (j=0;jVEX_NUM;++j)
if(i==j) G-arcs[i][j]=0;
else G-arcs[i][j]=MAXINT;
printf(输入vi,vj,w:\n );
for(k=0;ke;k++){
scanf(%d,%d,%d,i,j,w);
G-arcs[i][j]=w;
}
}/* creat_Mgraph */
void Dijkstra(Mgraph Gn, int v0,int path[],int dist[]){
int i,j,v,w,min;
int s[VEX_NUM];
for(v=0; vVEX_NUM; v++){
s[v]=0; dist[v]=Gn.arcs[v0][v];
if(dist[v]MAXINT) path[v]=v0;
else path[v]=-1;
}
dist[v0]=0;s[v0]=1;
for(i=1;iVEX_NUM -1;i++){
min=MAXINT;
for(w=0;wVEX_NUM;w++)
if(!s[w] dist[w]min){
v=w;min=dist[w];
}
s[v]=1;
您可能关注的文档
- 中美偏见及刻板印象.ppt
- 无刷电机的单片机控制.doc
- 11、抽样管理程序.doc
- 操作系统(第四版)第8章课件ppt.ppt
- 14WCDMA切换原理(合作方).ppt
- 上海交通大学2007年冬令营选拔测试数学试题.doc
- 股票MicrosoftWord文档.doc
- 平行与相交案例评析.doc
- 松山小学合唱队方案.doc
- 2012名校英语模考语法填空专项练习40篇.doc
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
文档评论(0)