char c = B[++jj];
if(a==b&&c==k || a==k&& c==b ) {::MessageBox(NULL,_T(\请输入不同的边
\提示\
}
}
if(js ==dds )
{::MessageBox(NULL,_T(\输入的边不正确,请输入图中顶点的边
for (int ii= 0; ii int hh = B[ii]; int js = 0; for(int xx = 0 ; xx< dds; xx++) { } if(hh!=D[xx]) js++; \提示\ } return OK; } void Shuchu(AMLGraph &G, char s)//其中s 为图的顶点 { int v,u,w,z; int m=-1; int mm = 0; LinkQueue Q; int n = G.vexnum; for(v=0;v if(m>=1) {Goujian = Goujian + \ if(!Visited[(v+z)%G.vexnum]) /* v尚未访问 */ { mm++; Visited[(v+z)%G.vexnum]=1;/* 设置访问标志为TRUE(已访问) */ Goujian = Goujian + G.adjmulist[(v+z)%G.vexnum].data; EnQueue(Q,(v+z)%G.vexnum); while(!QueueEmpty(Q)) /* 队列不空 */ { DeQueue(Q,u); for(w=FirstAdjVex(G,G.adjmulist[u].data);w>=0;w=NextAdjVex(G,G.adjmulist[u].data,G.adjmulist[w].data)) { if(!Visited[w]) { } Visited[w]=1; Goujian = Goujian + G.adjmulist[w].data; EnQueue(Q,w); } } } } itoa(mm,&s,10); Geshu = s; } void BFShuatu(AMLGraph G,VertexType start) { /*从start顶点起,广度优先遍历图G*/ int v,u,w,z; int m=-1; int a = -1; int b = -1; LinkQueue Q; int n = G.vexnum; int *X= new int[n]; int *Y = new int[n]; int *DX = new int[n];//存放的坐标与每个顶点的位置相对应 int *DY = new int[n]; for(v=0;v z=LocateVex(G,start); for(v=0;v m++; CPen pen(PS_SOLID,1,RGB(50*m,0,0)); SelectObject(hdc,pen); if(!Visited[(v+z)%G.vexnum]) /* v尚未访问 */ { Visited[(v+z)%G.vexnum]=1;/* 设置访问标志为TRUE(已访问) */ EnQueue(Q,(v+z)%G.vexnum); x0=660/6+(m*50); y0=340/5; x=x0; y=y0; MoveToEx(hdc,x,y,NULL); LineTo(hdc,x0,y0); X[++a]=x; Y[a]=y; DX[(v+z)%G.vexnum] = x0; DY[(v+z)%G.vexnum] = y0; Rectangle(hdc,x0-1,y0-1,x0+13,y0+19); //画框框 TextOut(hdc,x,y, &G.adjmulist[(v+z)%G.vexnum].data,1); //在当前坐标输出 //在当前结点和源结点用直线连接 T->data while(!QueueEmpty(Q)) /* 队列不空 */ { DeQueue(Q,u); x0=X[++b]; y0=Y[b]; int q =0; for(w=FirstAdjVex(G,G.adjmulist[u].data);w>=0;w=NextAdjVex(G,G.adjmulist[u].data,G.adjmulist[w].data)) } { q++; if(!Visited[w]) { Visited[w] = 1; EnQueue(Q,w); if(x<=x0) x+=20*q; else x-=20*q; y += 10*q; //在当前结点和源结点用直线连接 MoveToEx(hdc,x,y,NULL); LineTo(hdc,x0,y0); X[++a]=x; Y[a]=y; DX[w]= x; DY[w]= y; Rectangle(hdc,x-1,y-1,x+13,y+19); //画框框 VertexType h = G.adjmulist[w].data; TextOut(hdc,x,y, &h,1); //在当前坐标输出T->data } if(Visited[w]) { int xz = DX[w]; int yz = DY[w]; MoveToEx(hdc,xz,yz,NULL); LineTo(hdc,x0,y0); } } } } DestroyQueue(Q); /*销毁队列,释放其占用空间*/ }