欢迎来到天天文库
浏览记录
ID:16443176
大小:75.00 KB
页数:9页
时间:2018-08-09
《图的遍历(邻接表结构)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
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[2
2、0][20]; typedef struct { 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]
3、!=v) { ++i; } return i; } int creatMGraph_L(MGraph_L &G)//创建图用邻接矩阵表示 { char v1,v2; int i,j,w; cout<<"…………创建无向图…………"<>G.vexnum>>G.arcnum; for(i=0;i!=G.vexnum;++
4、i) { cout<<"输入顶点"<>G.vexs[i]; } for(i=0;i!=G.vexnum;++i) 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) {
5、cout<<"输入一条边依附的顶点和权:(a b 3)不包括“()”"<>v1>>v2>>w;//输入一条边依附的两点及权值 i=localvex(G,v1);//确定顶点V1和V2在图中的位置 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; }
6、 return G.vexnum; } void ljjzprint(MGraph_L G) //输出图的邻接矩阵 { int i,j; for(i=0;i!=G.vexnum;++i) { for(j=0;j!=G.vexnum;++j) cout<7、问标记 int we; typedef struct arcnode//弧结点 { int adjvex;//该弧指向的顶点的位置 struct arcnode *nextarc;//弧尾相同的下一条弧 char *info;//该弧信息 }arcnode; typedef struct vnode//邻接链表顶点头接点 { char data;//结点信息 arcnode *firstarc;//指向第一条依附该结点的弧的指8、针 }vnode,adjlist; typedef struct//图的定义 { adjlist vertices[max]; int vexnum,arcnum; int kind; }algraph; //…………………………………………队列定义…………………… typedef struct qnode { i
7、问标记 int we; typedef struct arcnode//弧结点 { int adjvex;//该弧指向的顶点的位置 struct arcnode *nextarc;//弧尾相同的下一条弧 char *info;//该弧信息 }arcnode; typedef struct vnode//邻接链表顶点头接点 { char data;//结点信息 arcnode *firstarc;//指向第一条依附该结点的弧的指
8、针 }vnode,adjlist; typedef struct//图的定义 { adjlist vertices[max]; int vexnum,arcnum; int kind; }algraph; //…………………………………………队列定义…………………… typedef struct qnode { i
此文档下载收益归作者所有