You are on page 1of 3

DEPARTMENT OF

COMPUTER SCIENCE & ENGINEERING

Experiment – 3.3
Student Name: Vishesh Pratap Singh UID: 21BCS2233
Branch: CSE Section/Group: 619/A
Semester: 3rd Date of Performance: 29/10/22
Subject Name: Data Structures Subject Code: 21-CSH-218

AIM: Write a program to illustrate the traversal of graph using


a) Breadth-first search
b) Depth-first search.

OBJECTIVE: To demonstrate graph using Breadth first and Depth First Search.

CODE:
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
void addEdge(vector<int>a[], int u, int v){
a[u].push_back(v);
a[v].push_back(u);
}
void DFS(vector<int>a[], int u, bool visited[]){
visited[u]=true;
cout<<u<<" ";
for(int i=0;i<a[u].size();i++){
if(visited[a[u][i]]==false){
DFS(a,a[u][i],visited);
}
}
}
void DFSUtil(vector<int>a[], int v){
bool visited[v];
for(int i=0;i<v;i++){
visited[i]=false;
}
for(int i=0;i<v;i++){
if(visited[i]==false){
DFS(a,i,visited);
}
DEPARTMENT OF
COMPUTER SCIENCE & ENGINEERING
}
}
void BFS(vector<int>a[], int u, bool visited[]){
queue<int>q;
q.push(u);
visited[u]=true;
while(!q.empty()){
int temp=q.front();
q.pop();
cout<<temp<<" ";
for(int i=0;i<a[temp].size();i++){
if(visited[a[temp][i]]==false){
q.push(a[temp][i]);
visited[a[temp][i]]=true;
}
}
}
}
void BFSUtil(vector<int>a[], int v){
bool visited[v];
for(int i=0;i<v;i++){
visited[i]=false;
}
for(int i=0;i<v;i++){
if(visited[i]==false){
BFS(a,i,visited);
}
}
}
int main(){
int length;
cout<<"Enter the number of vertices: ";
cin>>length;
vector<int> adj[length];
for(int iterator=0;iterator<length;iterator++){
int u,v;
cout<<"Enter the vertices: ";
cin>>u>>v;
addEdge(adj,u,v);
}
DFSUtil(adj,length);
BFSUtil(adj,0);
}
DEPARTMENT OF
COMPUTER SCIENCE & ENGINEERING

OUTPUT:

Learning outcomes:

1. Learnt graph and its properties.

You might also like