第五周作业——有向图表示及反向图构造
2014-04-09 19:21
197 查看
#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[30][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 < 22; k++) { for (int j = 0; j < 2; j++) { Node[k][j] = data[p]; p++; } } cout<<"readFile success"<<endl; 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 GraphAdjacencyMatrix(int* data, int num, int Node[30][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 [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<<AdjacencyMatrix[node1][node2]<<" "; } for (int n = 0; n < 13; n++) { for (int m =0; m < 13; m++) { cout<<AdjacencyMatrix [m]<<" "; } cout<<endl; } } void GraphReverse(int* data, int num, int AdjacencyMatrix[13][13], int newNode[22][2]) { int k = 0; for (int i = 0; i < 13; i++) { for (int j = 0; j < 13; j++) { if (AdjacencyMatrix[i][j] == 1) { newNode[k][0] = j; newNode[k][1] = i; k++; } } } } void main() { int Node[30][2]; int newNode[22][2]; int AdjacencyMatrix[13][13]; int numOfData = GetNumOfData("d:\\tinyDG.txt"); int* data = new int[numOfData]; ReadFile("d:\\tinyDG.txt", data, numOfData, Node); GraphAdjacencyMatrix(data, numOfData, Node, AdjacencyMatrix); GraphReverse(data, numOfData, AdjacencyMatrix, newNode); cout<<"The Graph of Reverse:"<<endl; GraphAdjacencyMatrix(data, numOfData, newNode, AdjacencyMatrix); }
相关文章推荐
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造(GraphReverse)
- 第五周作业 -- 有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造
- 第五周作业——有向图邻接表表示及反向图构造