int main(int argc, char** argv) { Graph< Node<int>, Edge<int> > g = Graph< Node<int>, Edge<int> >(true, false, true, true); /* Node4BFS* n[10]; for (int i = 0; i < 10; i++) { n[i] = new Node4BFS(); n[i]->populateNode(true, true, 10); g.insertNode(n[i]); } srand(time(NULL)); int nEdges = 10 * (rand() % 10); cout<<"nEdges "<< nEdges<<"\n"; for (int i = 0; i < nEdges; i++) { Node* node1 = n[rand() % 10]; Node* node2 = n[rand() % 10]; while (node2 == node1) node2 = n[rand() % 10]; g.createEdge(n[rand() % 10], n[rand() % 10]); } */ g.createRandomGraph(20, 0.20, true); g.printGraph(); cout<<endl<<endl<<"BFS"<<endl; g.BreadthFirstSearch(g.getNodeByIndex(0)); g.reset(); cout<<endl<<endl<<"DFS"<<endl; //g.DepthFirstSearch(); g.reset(); g.topsort(); }
int _tmain(int argc, _TCHAR* argv[]) { string file = "adjacencyMatrix.txt"; Graph G; G.LoadGraph(file,1); cout<<"*********************************************************\n"; cout<<"\t\tVisit Graph\n"; cout<<"*********************************************************\n"; G.BreadthFirstSearch(); G.DepthFirstSearch(); string file2 = "weightedAdjacencyMatrix.txt"; G.LoadGraph(file2,2); cout<<"*********************************************************\n"; cout<<"\t\tMinimum spanning tree\n"; cout<<"*********************************************************\n"; Kruskal k; k.MSTKruskal(G.vertexNumber,G.weightedAdjacencyMatrix); Prim p; int startVertex = 0; p.MSTPrim(G.vertexNumber,G.weightedAdjacencyMatrix,startVertex); string file3 = "weightedDirectedGraph.txt"; G.LoadGraph(file3,3); cout<<"*********************************************************\n"; cout<<"\t\tSingle-source shortest path \n"; cout<<"*********************************************************\n"; Dijkstra d; d.SSSPDijkstra(G.vertexNumber,G.weightedDirectedAdjacencyMatrix,startVertex); return 0; }