// travelling salesman for COP4020 #include #define max_nodes 10 int edges[max_nodes][max_nodes]={0}; void read_edges() { int node1, node2, cost; while (cin) { cin >> node1 >> node2 >> cost; edges[node1][node2]=edges[node2][node1]=cost; } } void print_edges(int n_nodes) { int r, c; for (r=0;r"; cout << path[i]; } void push (int n) { path[p_len++]=n; //cout <<"push:"; print_path(); cout << endl; } void pop() { path[p_len-- - 1]=0; //cout <<"pop:"; print_path(); cout << endl; } int done(int node, int n) { return node==path[0] && p_len==n;} void tryit(int node, int cost, int n_nodes) { if (done(node, n_nodes)){ print_path(); cout << "->" << node << " " << cost << endl; return; } if (contains(node)) return; push(node); int i; for (i=0;i> n_nodes; read_edges(); tryit(0,0,n_nodes); print_path(); return 0; }