##. I have done some part of this program I just need to work on the remaining functions such as dislayDFS, displayBSF, and bool isBipartite. You should not use additional functions and everything nee

Ace your studies with our custom writing services! We've got your back for top grades and timely submissions, so you can say goodbye to the stress. Trust us to get you there!


Order a Similar Paper Order a Different Paper

##. I have done some part of this program I just need to work on the remaining functions such as dislayDFS, displayBSF, and bool isBipartite. You should not use additional functions and everything need to be iterative NO RECURSIVE

Write a C++ class definition for an abstract data type called Graph that models an undirected graph. Vertices are labeled by number from 0 to n-1 where n is the number of vertices in the graph. Implement the following public member functions. • Graph(char *fileName): A constructor that creates the graph using the file passed into the function. o The format of the file is described later in the document. • ~Graph(): An appropriate destructor. • void display() const: Displays the graph’s adjacency matrix to the screen using this format (see examples later): o Single space between digits. o First row (top) and first column (left) is vertex 0, second row and column is vertex 1, …, last row (bottom) and last column (right) is vertex n – 1. • void displayDFS(int vertex) const: Displays the result of a depth first search starting at the provided vertex. o When you have a choice between selecting two vertices, pick the vertex with the lower number. • void displayBFS(int vertex) const: Displays the result of a breadth first search starting at the provided vertex. o When you have a choice between selecting two vertices, pick the vertex with the lower number. • bool isBipartite() const: Returns true if the graph is bipartite and false otherwise.

##. I have done some part of this program I just need to work on the remaining functions such as dislayDFS, displayBSF, and bool isBipartite. You should not use additional functions and everything nee
// FILE: StackInt.cpp// DESCRIPTION: Class implementation for a stack of integers// NOTE: You are not allowed to modify this file.#include #include using namespace std;#include “StackInt.h”// Add an integer to the top of the stack.void StackInt::push(int val){stackObj.push(val);}// Removes and returns an integer from the top of the stack. Aborts the// program is the stack is empty.int StackInt::pop(){int val = top();stackObj.pop(); return val;}// Returns but does not remove the integer at the top of the stack. Aborts the// program is the stack is empty.int StackInt::top() const{if (isEmpty()) { cerr << “Tried to access empty stack –> aborting program” << endl;exit(-1);}return stackObj.top();}// Returns true if the stack is empty.bool StackInt::isEmpty() const{return stackObj.empty();} // FILE: QueueInt.cpp// DESCRIPTION: Class implementation for a queue of integers// NOTE: You are not allowed to modify this file.#include #include using namespace std;#include “QueueInt.h”// Add an integer to the back of the queue.void QueueInt::enqueue(int val){ queueObj.push(val);}// Removes and returns an integer from the front of the queue. Aborts the// program is the queue is empty.int QueueInt::dequeue(){int val = front();queueObj.pop(); return val;}// Returns but does not remove the integer at the front of the queue. Aborts the// program is the queue is empty.int QueueInt::front() const{if (isEmpty()) { cerr << “Tried to access empty queue –> aborting program” << endl;exit(-1);}return queueObj.front();}// Returns true if the queue is empty.bool QueueInt::isEmpty() const{return queueObj.empty();} / FILE: main.cpp// DESCRIPTION: Tests Graph class// NOTE: You are not allowed to modify this file.#include using namespace std;#include “Graph.h”int main(int argc, char *argv[]){ argv[1] = “graph0.txt”;Graph g(argv[1]);cout << endl << “Adjacency Matrix” << endl;g.display();g.displayDFS(0);g.displayBFS(0);cout << “Bipartite: “; if (g.isBipartite()) cout << “TRUE”; elsecout << “FALSE”;cout << endl; return 0;} // FILE: Graph.cpp// DESCRIPTION: Implementation of the Graph class.#include #include #include #include using namespace std;#include “Graph.h”#include “QueueInt.h”#include “StackInt.h”// Constructor: load the graph from a fileGraph::Graph(char *filename){ifstream myfile;myfile.open (filename); // open file named filenameif ( myfile.is_open() ) { // check if the file is opencout<<“n”<<filename<<“:”<<endl; // prints out the name of the filestring line;getline(myfile, line); // store and get the next linen = stoi(line); // convert the into int to access the vertix numadjMatrix = new int*[n]; // matrix initializedfor(int i = 0; i < n; i++){adjMatrix[i] = new int[n]; for(int j = 0; j < n; j++){adjMatrix[i][j] = 0; // make element in the metrix equal to zero} }while (getline(myfile, line)) { // keep storing and going to the next lineint a = stoi(line.substr(0, 1)); int b = stoi(line.substr(2,1));adjMatrix[b][a] = 1;adjMatrix[a][b] = 1;} }else { cout << “Couldn’t open filen”;}}// DestructorGraph::~Graph(){if(!adjMatrix) { // if adjmatrix is not nullptrfor(int i = 0; i < n; i++ ){delete [] adjMatrix[i]; // delete the adjMatrix from i through n}delete [] adjMatrix;}}// Display the adjacency matrixvoid Graph::display() const{//using nested for loop to display columns and row of the matrixfor(int i = 0; i < n; i++) {for(int j = 0; j < n; j++) { cout<< adjMatrix[j][i] <<” “;} cout<<endl;}}// Displays the depth first search starting at the given vertexvoid Graph::displayDFS(int vertex) const {}// Perform breadth first search starting at the given vertexvoid Graph::displayBFS(int vertex) const{ Graph.csv 50 11 22 43 24 01 3

Writerbay.net

Looking for top-notch essay writing services? We've got you covered! Connect with our writing experts today. Placing your order is easy, taking less than 5 minutes. Click below to get started.


Order a Similar Paper Order a Different Paper