第四周作业——图的表示
#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); }