

#include <iostream>
#include <string>

#include "queue.h"
#include "stack.h"
#include "graph.h"


bool Visit (string& s, int d) 
{ 
  for (int i = 0; i < 4*d; i++)
    cout << " ";
  cout << s << endl; 
  return true;
}

int
main (int argc, char *argv[])
{
  Graph<string, int, int> g;  

  g.InsertNode ("Chicago");
  g.InsertNode ("NY");
  g.InsertNode ("LA");
  g.InsertNode ("Phoenix");
  g.InsertNode ("Wisconsin");
  g.InsertNode ("Pittsburgh");
  g.InsertNode ("Austin");
  g.InsertNode ("Dallas");

  g.InsertEdge ("Chicago", "NY");
  g.InsertEdge ("Chicago", "Wisconsin"); 
  g.InsertEdge ("Chicago", "LA");  

  g.InsertEdge ("LA", "Austin");
  g.InsertEdge ("Austin", "Dallas");
  g.InsertEdge ("Dallas", "LA");

  // cout << g << endl;

  g.DFS ("Chicago", Visit);

  return 0;
}

