next up previous contents
Next: Construct the Complex Graph: Up: The New Run Time Previous: Construct Graph G1:

Construct Graph G2:

We next construct a graph with 5 nodes and 9 edges:

  //construct graph G2
  Graph *G2 = new Graph(DataFloat,DataFloat,
                        T->radius,T->center,     
                        T->foreground,             
                        T->background,         
                        graph_colors,            
                        T->display, 
                        T->drawable,
                        T->pixmap,
                        T->pixmap2,
                        T->gc); 

   float node_data2[5];
   float edge_data2[8];
   
   for(int i = 0;i<5;++i){
     node_data2[i] = 3.0*i;
     }
   
   for(int i=0;i<9;++i){ 
     edge_data2[i] = 100.0;
     }
        
   Gnode *g2n1 = G2->addNode("Ozymanius",240.0,200.0,&(node_data2[0]));
   Gnode *g2n2 = G2->addNode("EadhmonnuaQuinn",320.0,100.0,&(node_data2[1]));
   Gnode *g2n3 = G2->addNode("EadhmonnuaGuinn",320.0,200.0,&(node_data2[2]));
   Gnode *g2n4 = G2->addNode("Galadriel",320.0,300.0,&(node_data2[3]));
   Gnode *g2n5 = G2->addNode("OshGosh",320.0,300.0,&(node_data2[4]));
      
   G2->addEdge(g2n2,g2n1,4.0,&(edge_data2[0]));
   G2->addEdge(g2n4,g2n3,5.0,&(edge_data2[1]));
   G2->addEdge(g2n5,g2n2,1.0,&(edge_data2[2]));
   G2->addEdge(G2->findNode("Ozymanius"),G2->findNode("OshGosh"),
               6.0,&(edge_data2[3]));
   G2->addEdge(G2->findNode("EadhmonnuaQuinn"),G2->findNode("OshGosh"),
                            3.0,&(edge_data2[4]));
   G2->addEdge(G2->findNode("EadhmonnuaQuinn"),G2->findNode("EadhmonnuaGuinn"),
                            4.5,&(edge_data2[5]));
   G2->addEdge(G2->findNode("EadhmonnuaGuinn"),G2->findNode("OshGosh"),
                            14.5,&(edge_data2[6]));   
   G2->addEdge(G2->findNode("EadhmonnuaQuinn"),G2->findNode("Galadriel"),
                            3.5,&(edge_data2[7]));
   G2->addEdge(G2->findNode("EadhmonnuaQuinn"),G2->findNode("Ozymanius"),
                            14.5,&(edge_data2[8]));

We print out graph G2 using the line

   cout << "Graph G2 = " << G2 << endl;

At run-time, this generates the following output:

Graph G2 = Graph: 
Nodes: 
entering node loop 
node 1
  OshGosh 12
node 2
  Galadriel 9
node 3
  EadhmonnuaGuinn 6
node 4
  EadhmonnuaQuinn 3
node 5
  Ozymanius 100
entering edge loop
  Edges: 
edge 1
          EadhmonnuaQuinn-----(14.5)---> Ozymanius 100
edge 2
          EadhmonnuaQuinn-----(3.5)---> Galadriel 100
edge 3
          EadhmonnuaGuinn-----(14.5)---> OshGosh 100
edge 4
          EadhmonnuaQuinn-----(4.5)---> EadhmonnuaGuinn 100
edge 5
          EadhmonnuaQuinn-----(3)---> OshGosh 100
edge 6
          Ozymanius-----(6)---> OshGosh 100
edge 7
          OshGosh-----(1)---> EadhmonnuaQuinn 100
edge 8
          Galadriel-----(5)---> EadhmonnuaGuinn 100
edge 9
          EadhmonnuaQuinn-----(4)---> Ozymanius 100
End Graph



Jim Peterson
1999-05-17