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();
}
Exemple #2
0
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;
}