赋值
#include<iostream>
#include<stdio.h>
#include<malloc.h>
#include<windows.h>
#include<fstream>
#include <iomanip>
#include <string>
using namespace std;
#define int_max1 10000
#define inf 9999
#define max 20
int CountLines(char *filename);
//…………………………………………邻接矩阵定义……………………
typedef struct ArcCell
{
int adj;
char *info;
}ArcCell,AdjMatrix[20][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]!=v)
{
++i;
}
return i;
}
int creatMGraph_L(MGraph_L &G)//创建图用邻接矩阵表示
{
char v1,v2;
int i,j,w,k;
cout<<"********************************************************************************"<<endl;
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<" 图的遍历和生成树求解实现 "<<endl;
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"********************************************************************************"<<endl<<endl<<endl;
cout<<" *****************创建无向图****************"<<endl<<endl<<endl;
cout<<"a.从键盘录入"<<endl;
cout<<"b.从文件录入"<<endl;
cout<<"请选择图的创建方式:";
char x;
cin >> x;
if(x=='a')
{
cout<<"请输入图G顶点和弧的个数(中间以空格隔开):";
cin>>G.vexnum>>G.arcnum;
for(i=0;i!=G.vexnum;++i)
{
cout<<"输入顶点"<<i<<":";
cin>>G.vexs[i];
}
for(i=0;i!=G.vexnum;++i)
for(j=0;j!=G.vexnum;++j)
{
G.arcs[i][j].adj=int_max1;//
//G.arcs[i][j].adj=INT_MAX;
G.arcs[i][j].info=NULL;
}
for(k=0;k!=G.arcnum;++k)
{
cout<<"输入一条边依附的顶点和权(如 a b 3):";
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<<endl<<" ####################图G邻接矩阵创建成功!######################"<<endl;
return G.vexnum;
}
else
{
ifstream file;
int LINES;
char filename[512];
cout<<"请输入要打开的文件名:"<<endl;
cin>>filename;
file.open(filename,ios::in);
if(file.fail())
{
cout<<"文件不存在."<<endl;
file.close();
cin.get();
cin.get();
}
else//文件存在
{
LINES=CountLines(filename);
char *tc=new char[LINES];
char *t=new char[LINES];
int *tcc=new int[LINES];
int x;
while(!file.eof()) //读取数据到数组
{
file>>tc[x];
file>>t[x];
file>>tcc[x];
x++;
}
file.close(); //关闭文件
for(x=0;x<LINES;x++)//输出数组内容
{
v1=tc;
v2=t;
w=tcc; i=localvex(G,v1);//确定顶点V1和V2在图中的位置
j=localvex(G,v2);
G.arcs[i][j].adj=w;
G.arcs[j][i].adj=w;
}
}
}
}
红色的地方怎么把tc,t,tcc的内容给v1,v2,w。就和上面从键盘输入的一样