- 论坛徽章:
- 0
|
//
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
#define INFINITY 0
#define MAX_VERTEX_NUM 20
typedef struct ArcCell
{
int adj;
char *info;
}ArcCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
typedef struct
{
int vexs[MAX_VERTEX_NUM];
AdjMatrix arcs;//邻接矩阵
int vexnum,arcnum;//图的当前顶点数和弧数
}MGraph;
MGraph G;
void input(char *info)
{
char in[90];
cout <<"input the information:\n";
gets(in);
puts(in);
info = in;
}
int LocateVex(MGraph &G,int v)
{
int i;
for(i = 0;i < G.vexnum;++i)
if(G.vexs[i] == v)
return i;
return 0;
}
void display(MGraph &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 Create(MGraph &G)
{
int i,j,k,information;
cout <<"input the G.vexnum G.arcnum and information:\n";
cin >>G.vexnum>>G.arcnum>>information;
//cout <<G.arcnum<<endl;
cout <<"input the linjiejuzhen's vector:\n";
for(i = 0;i < G.vexnum;++i)
cin >>G.vexs[i];
for(i = 0;i < G.vexnum;++i)
for(j = 0;j < G.vexnum;++j)
{G.arcs[i][j].adj = INFINITY;
G.arcs[i][j].info = NULL;}
cout <<"zai ci zhong duan:\n";
for(k = 0;k < G.arcnum;++k)
{
int v1,v2,w;
cout <<"input v1 v2 and w:\n";
cin >>v1>>v2>>w;
i = LocateVex(G,v1);
j = LocateVex(G,v2);
G.arcs[i][j].adj = w;cout <<G.arcs[i][j].adj<<endl;
if(information)
{//input(G.arcs[i][j].info);
cout <<"input the information:\n";
char in[78];
gets(in);puts(in);
G.arcs[i][j].info = in;
}
G.arcs[j][i] = G.arcs[i][j];
}
cout <<"display:\n";
display(G);
return true;
}
int main(int argc, char* argv[])
{
// MGraph G;
cout <<"input the information:\n";
char in[78];
gets(in);puts(in);
Create(G);
printf("Hello World!\n");
return 0;
}
不能调用input函数,谢谢啦 |
|