关于图的邻接矩阵的问题

anthow 2014-04-05 08:54:08
#include <iostream.h>
#include <string.h>
#include <malloc.h>
#define MAXSIZE 100
#define INFINITY 10000
struct MGraph
{
char *vex[MAXSIZE];//表示顶点
int arc[MAXSIZE][MAXSIZE];//表示边的信息,权值
int numVex,numArc;//分别表示顶点数和边数
};
int Location(MGraph N,char *v)
{
for (int i=0;i<N.numVex;i++)
if(strcmp((N.vex[i]),v)==0)
return i;
return -1;
}
void createMGprah(MGraph *N)
{
int i,j,w;
char *v1,*v2;
cout<<"请输入顶点数和边数:";
cin>>N->numVex>>N->numArc;
cout<<"请输入"<<N->numVex<<"顶点的数据:";
for(i=0;i<N->numVex;i++)
{
N->vex[i]=(char *)malloc(5*sizeof(char));
cin>>N->vex[i];
}

for(i=0;i<N->numVex;i++)
for(j=0;j<N->numVex;j++)
N->arc[i][j]=INFINITY;
cout<<"请输入边之间的关系及权值:";
for (i=0;i<N->numArc;i++)
{
cin>>v1>>v2>>w;
i=Location(*N,v1);
j=Location(*N,v2);
N->arc[i][j]=w;
}
}
void destroyMGprah(MGraph *N)
{
for(int i=0;i<N->numVex;i++)
for (int j=0;j<N->numArc;j++)
{
if(N->arc[i][j]!=INFINITY)
delete N->vex[i];
}
N->numArc=0;
N->numVex=0;
}
void printMGprah(MGraph N)
{
for(int i=0;i<N.numVex;i++)
cout<<N.arc[i]<<" ";
for (i=0;i<N.numVex;i++)
for (int j=0;j<N.numVex;j++)
{
cout<<N.arc[i]<<" ";
cout<<N.vex[i][j]<<" ";
}
}
int main()
{
MGraph N;
createMGprah(&N);
printMGprah(N);
destroyMGprah(&N);
return 0;
}


就像这样的。。求解决啊
...全文
68 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
anthow 2014-04-05
  • 打赏
  • 举报
回复
是指针问题吧,但是找不到原因。

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧