/*
 *  graphShell.h 
 * 
 *  (c) 2004 Daniel Jackson. 
 *  CIS 11 Data Structures & Algorithms 
 * 
 
graphShell();
  Constructor runs a test progam. Loops through the menu system, allowing various  
  operations on a graph object. Create a graphShell object with whatever 
  template <class Item> desired, Item will be the type of the data label on each vertex. 
 
Item must have a default constructor. The assignment operator must work correctly, as must the 
copy constructor. 
 

*/

#ifndef GRAPHSHELL_H
#define GRAPHSHELL_H

#include "graph.h"
  
template <class Item>
class graphShell {
  public:
    graphShell();
  private:
    void DoMenu();
    void PrintMenu();
    void DijkstraAlgorithm(std::size_t start);
    bool noGraph();
    bool notDone, graphExists;
    graph<Item>* myGraph; };
    
#include "graphShell.cpp"
#endif