code chuyển từ ds cạnh sang ma trận kề 2
- Code:
#include<iostream.h>
#include<fstream.h>
#define FI "ChuyenDoiDoThi4.inp"
#define FO "ChuyenDoiDoThi4.out"
ifstream finp (FI);
ofstream fout (FO);
#define MAX 100
int i,j;
typedef struct EdgeTag
{
int u, v;
} Edge;
typedef struct GraphTag4
{
int m;
Edge e[MAX];
int a[MAX][MAX];
} Graph4;
void InputGraph(Graph4 &g)
{
for (i=0;i<6;i++)
for (j=0;j<6;j++)
g.a[i][j]=0;
finp >> g.m;
for (i=0; i<g.m; i++)
{
finp >> g.e[i].u >> g.e[i].v;
g.a[g.e[i].u][g.e[i].v]=1;
g.a[g.e[i].v][g.e[i].u]=1;
}
}
void OutputGraph(Graph4 g)
{
for (i=0;i<6;i++)
{
for (j=0;j<6;j++)
fout<<g.a[i][j]<<" ";
fout<<endl;
}
}
void main()
{
Graph4 g;
InputGraph(g);
OutputGraph(g);
finp.close();
fout.close();
}
đoạn code trên có gì chưa tối ưu xin góp ý
- Code:
int max;
void InputGraph(Graph4 &g)
{
for (i=0;i<MAX;i++)
for (j=0;j<MAX;j++)
g.a[i][j]=0;
finp >> g.m;
for (i=0; i<g.m; i++)
{
finp >> g.e[i].u >> g.e[i].v;
// ma tran ke la ma tran doi xung
g.a[g.e[i].u][g.e[i].v]=1;
g.a[g.e[i].v][g.e[i].u]=1;
max=g.e[i].v;
}
}
void OutputGraph(Graph4 g)
{
for (i=0;i<max+1;i++)
{
for (j=0;j<max+1;j++)
fout<<g.a[i][j]<<" ";
fout<<endl;
}
}