Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Hi guys, I need a fix to debug it. can you help me to fix it This is a cpp file #include #include #include #include

Hi guys, I need a fix to debug it. can you help me to fix it

This is a cpp file

#include

#include

#include

#include

#include

#include

using namespace std;

void addEdge(vector > adj[], int u,

int v, int wt)

{

adj[u].push_back(make_pair(v, wt));

adj[v].push_back(make_pair(u, wt));

}

// Print adjacency list representaion ot graph

void printGraph(vector > adj[], int V)

{

int v, w;

for (int u = 0; u < V; u++)

{

cout << u << " - ";

for (auto it = adj[u].begin(); it != adj[u].end(); it++)

{

v = it->first;

w = it->second;

cout << v << " ="

<< w << " ";

}

cout << " ";

}

}

// This function mainly does BFS and prints the

// shortest path from src to dest. It is assumed

// that weight of every edge is 1

void findShortestPath(vector > adj[],int src, int dest, int V, int &total)

{

// Mark all the vertices as not visited

bool *visited = new bool[2 * V];

int *parent = new int[2 * V];

// Initialize parent[] and visited[]

for (int i = 0; i < 2 * V; i++)

{

visited[i] = false;

parent[i] = -1;

}

// Mark the current node as visited and enqueue it

visited[src] = true;

int v, w, smallest = INT_MAX;;

for (int u = 0; u < V-1; u++)

{

smallest = INT_MAX;

for (int j = 0; j < adj[u].size()-1; j++)

{

if (adj[u][j].second < adj[u][j + 1].second && visited[adj[u][j].first] == false)

{

if (adj[u][j].second < smallest) {

smallest = adj[u][j].second;

visited[adj[u][j].first] = true;

}

}

else if (visited[adj[u][j + 1].first] == false)

{

if (adj[u][j + 1].second < smallest) {

smallest = adj[u][j + 1].second;

visited[adj[u][j + 1].first] = true;

}

}

if (adj[u][j].first == dest)

{

total += adj[u][j].second;

return;

}

else if (adj[u][j + 1].first == dest)

{

total += adj[u][j + 1].second;

return;

}

}

total += smallest;

}

}

// Driver code

int main()

{

vector > adj[6];

int V = 6;

string line;

ifstream myfile("file.txt");

vector vertex;

int count = 1;

if (myfile.is_open())

{

while (getline(myfile, line))

{

cout << line << ' ';

while (line != "-1")

{

char *token = strtok(const_cast(line.c_str()), " ");

token = strtok(NULL, " ");

vertex.push_back(token);

getline(myfile, line);

cout << line << ' ';

}

V = vertex.size();

getline(myfile, line);

cout << line << ' ';

while (line != "-1")

{

char *token = strtok(const_cast(line.c_str()), " ");

int u = atoi(token);

int v = atoi(strtok(NULL, " "));

int w = atoi(strtok(NULL, " "));

addEdge(adj, u, v, w);

getline(myfile, line);

cout << line << ' ';

}

}

myfile.close();

}

else cout << "Unable to open file";

string start, end;

cout << "Enter Start Vertex : ";

cin >> start;

cout << "Enter End Vertex : ";

cin >> end;

int s, e;

int i = 0;

for (auto it = vertex.begin(); it != vertex.end(); it++)

{

if (*it == start) s = i;

if (*it == end) e = i;

i++;

}

//printGraph(adj, V);

int total = 0;

findShortestPath(adj, s, e, V, total);

cout << "Total path: " << total << endl;

//printGraph(adj, V);

system("pause");

return 0;

}

and this is a text file

0 SF

1 LA

2 CHICAGO

3 NY

4 PARIS

5 LONDON

-1

0 1 80

0 2 200

0 3 300

1 2 230

1 5 700

2 3 180

3 4 630

3 5 500

4 5 140

-1

thanks

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Select Healthcare Classification Systems And Databases

Authors: Katherine S. Rowell, Ann Cutrell

1st Edition

0615909760, 978-0615909769

More Books

Students also viewed these Databases questions

Question

Understand the roles of signs, symbols, and artifacts.

Answered: 1 week ago

Question

Know the three main dimensions of the service environment.

Answered: 1 week ago