欢迎来到天天文库
浏览记录
ID:11634877
大小:75.00 KB
页数:9页
时间:2018-07-13
《图的遍历(邻接表结构)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include #include using namespace std; #define int_max 10000 #define inf 9999 #define max 20 //…………………………………………邻接矩阵定义…………………… typedef struct ArcCell { int adj; //char *info; }ArcCell,AdjMatrix[20][20]; typedef struct {
2、 char vexs[20]; AdjMatrix arcs; int vexnum,arcnum; }MGraph_L; //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ int localvex(MGraph_L G,char v)//返回V的位置 { int i=0; while(G.vexs[i]!=v) { ++i; } return i; } int creatMG
3、raph_L(MGraph_L &G)//创建图用邻接矩阵表示 { char v1,v2; int i,j,w; cout<<"…………创建无向图…………"<>G.vexnum>>G.arcnum; for(i=0;i!=G.vexnum;++i) { cout<<"输入顶点"<>G.vexs[i]; } for(i=0;i!=G.vexnum;++i)
4、 for(j=0;j!=G.vexnum;++j) { G.arcs[i][j].adj=0; //G.arcs[i][j].info=NULL; } for(int k=0;k!=G.arcnum;++k) { cout<<"输入一条边依附的顶点和权:(a b 3)不包括“()”"<>v1>>v2>>w;//输入一条边依附的两点及权值 i=localvex(G,v1);//确定顶点V1和V2在图中的位置
5、 j=localvex(G,v2); G.arcs[i][j].adj=1;//G.arcs[i][j].adj=w; G.arcs[j][i].adj=1;//G.arcs[j][i].adj=w; } return G.vexnum; } void ljjzprint(MGraph_L G) //输出图的邻接矩阵 { int i,j; for(i=0;i!=G.vexnum;++i) { for(j=0;j!=G.vexnum;++
6、j) cout<7、 { char data;//结点信息 arcnode *firstarc;//指向第一条依附该结点的弧的指针 }vnode,adjlist; typedef struct//图的定义 { adjlist vertices[max]; int vexnum,arcnum; int kind; }algraph; //…………………………………………队列定义…………………… typedef struct qnode { i
7、 { char data;//结点信息 arcnode *firstarc;//指向第一条依附该结点的弧的指针 }vnode,adjlist; typedef struct//图的定义 { adjlist vertices[max]; int vexnum,arcnum; int kind; }algraph; //…………………………………………队列定义…………………… typedef struct qnode { i
此文档下载收益归作者所有