// intro comment here

#include<iostream>
using namespace std;

class Vertex {
   string label;   // info for vertex
   double x;       // x-coordinate (longitude)
   double y;       // y-coordinate (latitude)

public:
   // inline constructors
   Vertex(){};   // default
   Vertex (string slabel, double xcoord, double ycoord) {
      this->label = slabel;
      this->x = xcoord;
      this->y = ycoord;
   }

   // getters
   double getX() { return x; }
   double getY() { return y; }
   string getLabel() { return label; }

   // other method declarations go here

};

class Edge : public Vertex {
   Vertex start;   // "starting" vertex of edge
   Vertex end;     // "ending" vertex of edge

public:
   // inline constructors
   Edge () {};     // default
   Edge (Vertex one, Vertex two) {
      start = one;
      end = two;
   } 

   // getters
   Vertex getStart() { return start; }
   Vertex getEnd() { return end; }
   
   // other method declarations go here

};

class DFS : public Edge {
   // declarations here, including, perhaps, private methods

public:
   void readTMG ();   // method to read TMG file
   void runDFS ();    // run DFS
};
