#include #include #include #include #include #include using namespace std; class Node { char _name; map _links; public: Node(); Node(char name); void linkNode(char edge, Node* node); }; Node::Node(char name) { _name = name; } void Node::linkNode(char edge, Node* node) { _links[edge] = node; } void addNodes(vector* nodes, char edge, Node * node1, Node * node2) { node1->linkNode(edge, node2); node2->linkNode(edge, node1); nodes->push_back(node1); nodes->push_back(node2); } int main() { ostringstream output; vector nodes; while (true) { cout << "graphprog> "; string cmd; char n1, n2, edge; cin >> cmd; if (cmd == "add") { cin >> edge >> n1 >> n2; output << edge << " " << n1 << " " << n2 << endl; addNodes(&nodes, edge, new Node(n1), new Node(n2)); } else if (cmd == "write") { string outfileName; cin >> outfileName; ofstream outfile(outfileName.c_str()); outfile << output.str(); } else if (cmd == "show") { //cout << output.str(); } else if (cmd == "quit") { break; } else { cerr << "Invalid command." << endl; } } return 0; }