关于图的遍历的数据结构课程设计
}
int creatMGraph_L(MGraph_L &G)//创建图用邻接矩阵表示 {
char v1,v2; int i,j,w;
cout<<" 创建无向图 "<<endl;<<"请输入图G顶点和弧的个数:(4 6)不包括“()”"<<endl;
cin>>G.vexnum>>G.arcnum; for(i=0;i!=G.vexnum;++i) {
cout<<"输入顶点"<<i<<endl; cin>>G.vexs[i]; }
for(i=0;i!=G.vexnum;++i) for(j=0;j!=G.vexnum;++j) {
G.arcs[i][j].adj=int_max; G.arcs[i][j].info=NULL; }
for(int k=0;k!=G.arcnum;++k) {
cout<<"输入一条边依附的顶点和权:(a b 3)不包括()"<<endl; cin>>v1>>v2>>w;//输入一条边依附的两点及权值 i=localvex(G,v1);//确定顶点V1和V2在图中的位置 j=localvex(G,v2); G.arcs[i][j].adj=w; G.arcs[j][i].adj=w; }
cout<<"图G邻接矩阵创建成功!"<<endl; 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<<G.arcs[i][j].adj<<" "; cout<<endl; } }
int visited[max];//访问标记
关于图的遍历的数据结构课程设计
int we;
typedef struct arcnode//弧结点 {
int adjvex;//该弧指向的顶点的位置
struct arcnode *nextarc;//弧尾相同的下一条弧 char *info;//该弧信息 }arcnode;
typedef struct vnode//邻接链表顶点头接点 {
char data;//结点信息
arcnode *firstarc;//指向第一条依附该结点的弧的指针 }vnode,adjlist;
typedef struct//图的定义 {
adjlist vertices[max]; int vexnum,arcnum; int kind; }algraph;
// 队列定义 typedef struct qnode {
int data;
struct qnode *next;
}qnode,*queueptr;
typedef struct {
queueptr front; queueptr rear;
}linkqueue;
//……………………………………………………………………… typedef struct acr {
int pre;//弧的一结点 int bak;//弧另一结点 int weight;//弧的权 }edg;
int creatadj(algraph &gra,MGraph_L G)//用邻接表存储图 {