第四周作业——图的表示
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int GetNumOfData(char* fileName)
{
ifstream fin;
int temp;
int numOfData = 0;
fin.open(fileName);
while (!fin.eof())
{
numOfData++;
fin>>temp;
}
cout<<"The number of data is: "<<numOfData<<endl;
fin.close();
return numOfData;
}
void ReadFile(char* fileName, int* data, int num, int Node[20][2])
{
ifstream fin;
// int Node[20][2];
int i = 0;
int p = 0;
fin.open(fileName);
for (i = 0; i < num; i++)
{
fin>>data[i];
}
for (int k = 0; k < 13; k++)
{
for (int j = 0; j < 2; j++)
{
Node[k][j] = data[p];
p++;
}
}
fin.close();
}
void WriteFile(char* fileName, int* data, int num, int AdjacencyMatrix[13][13])
{
ofstream fout;
fout.open(fileName);
for (int i = 0; i < 13; i++)
{
for (int j = 0; j < 13; j++)
{
fout<<AdjacencyMatrix[i][j]<< " ";
}
fout<<endl;
}
fout.close();
}
void GraphRepresentation(int* data, int num, int Node[20][2], int AdjacencyMatrix[13][13])
{
int node1 = 0;
int node2 = 0;
// int AdjacencyMatrix[13][13];
for (int n = 0; n < 13; n++)
{
for (int m =0; m < 13; m++)
{
AdjacencyMatrix[n][m] = 0;
}
}
for (int k = 0; k < num / 2; k++)
{
node1 = Node[k][0];
node2 = Node[k][1];
AdjacencyMatrix[node1][node2] = 1;
AdjacencyMatrix[node2][node1] = 1;
}
cout<<"success"<<endl;
}
void main()
{
int Node[20][2];
int AdjacencyMatrix[13][13];
int numOfData = GetNumOfData("d:\\tinyG.txt");
int* data = new int[26];
ReadFile("d:\\tinyG.txt", data, numOfData, Node);
GraphRepresentation(data, numOfData, Node, AdjacencyMatrix);
WriteFile("d:\\tinyG_matrix.txt", data, numOfData, AdjacencyMatrix);
}