"BFS AND DFS IN C" Code Answer's

You're definitely familiar with the best coding language C++ that developers use to develop their projects and they get all their queries like "BFS AND DFS IN C" answered properly. Developers are finding an appropriate answer about BFS AND DFS IN C related to the C++ coding language. By visiting this online portal developers get answers concerning C++ codes question like BFS AND DFS IN C. Enter your desired code related query in the search bar and get every piece of information about C++ code related question on BFS AND DFS IN C. 

bfs traversal of graph in c

By Thoughtless TigerThoughtless Tiger on Jul 14, 2020
// BFS algorithm in C

#include <stdio.h>
#include <stdlib.h>
#define SIZE 40

struct queue {
  int items[SIZE];
  int front;
  int rear;
};

struct queue* createQueue();
void enqueue(struct queue* q, int);
int dequeue(struct queue* q);
void display(struct queue* q);
int isEmpty(struct queue* q);
void printQueue(struct queue* q);

struct node {
  int vertex;
  struct node* next;
};

struct node* createNode(int);

struct Graph {
  int numVertices;
  struct node** adjLists;
  int* visited;
};

// BFS algorithm
void bfs(struct Graph* graph, int startVertex) {
  struct queue* q = createQueue();

  graph->visited[startVertex] = 1;
  enqueue(q, startVertex);

  while (!isEmpty(q)) {
    printQueue(q);
    int currentVertex = dequeue(q);
    printf("Visited %d\n", currentVertex);

    struct node* temp = graph->adjLists[currentVertex];

    while (temp) {
      int adjVertex = temp->vertex;

      if (graph->visited[adjVertex] == 0) {
        graph->visited[adjVertex] = 1;
        enqueue(q, adjVertex);
      }
      temp = temp->next;
    }
  }
}

// Creating a node
struct node* createNode(int v) {
  struct node* newNode = malloc(sizeof(struct node));
  newNode->vertex = v;
  newNode->next = NULL;
  return newNode;
}

// Creating a graph
struct Graph* createGraph(int vertices) {
  struct Graph* graph = malloc(sizeof(struct Graph));
  graph->numVertices = vertices;

  graph->adjLists = malloc(vertices * sizeof(struct node*));
  graph->visited = malloc(vertices * sizeof(int));

  int i;
  for (i = 0; i < vertices; i++) {
    graph->adjLists[i] = NULL;
    graph->visited[i] = 0;
  }

  return graph;
}

// Add edge
void addEdge(struct Graph* graph, int src, int dest) {
  // Add edge from src to dest
  struct node* newNode = createNode(dest);
  newNode->next = graph->adjLists[src];
  graph->adjLists[src] = newNode;

  // Add edge from dest to src
  newNode = createNode(src);
  newNode->next = graph->adjLists[dest];
  graph->adjLists[dest] = newNode;
}

// Create a queue
struct queue* createQueue() {
  struct queue* q = malloc(sizeof(struct queue));
  q->front = -1;
  q->rear = -1;
  return q;
}

// Check if the queue is empty
int isEmpty(struct queue* q) {
  if (q->rear == -1)
    return 1;
  else
    return 0;
}

// Adding elements into queue
void enqueue(struct queue* q, int value) {
  if (q->rear == SIZE - 1)
    printf("\nQueue is Full!!");
  else {
    if (q->front == -1)
      q->front = 0;
    q->rear++;
    q->items[q->rear] = value;
  }
}

// Removing elements from queue
int dequeue(struct queue* q) {
  int item;
  if (isEmpty(q)) {
    printf("Queue is empty");
    item = -1;
  } else {
    item = q->items[q->front];
    q->front++;
    if (q->front > q->rear) {
      printf("Resetting queue ");
      q->front = q->rear = -1;
    }
  }
  return item;
}

// Print the queue
void printQueue(struct queue* q) {
  int i = q->front;

  if (isEmpty(q)) {
    printf("Queue is empty");
  } else {
    printf("\nQueue contains \n");
    for (i = q->front; i < q->rear + 1; i++) {
      printf("%d ", q->items[i]);
    }
  }
}

int main() {
  struct Graph* graph = createGraph(6);
  addEdge(graph, 0, 1);
  addEdge(graph, 0, 2);
  addEdge(graph, 1, 2);
  addEdge(graph, 1, 4);
  addEdge(graph, 1, 3);
  addEdge(graph, 2, 4);
  addEdge(graph, 3, 4);

  bfs(graph, 0);

  return 0;
}

Source: www.programiz.com

Add Comment

0

BFS AND DFS IN C

By Smoggy ShrikeSmoggy Shrike on Nov 02, 2020
#include<stdio.h>
#include<stdlib.h>
 
#define MAX 100  
 
#define initial 1
#define waiting 2
#define visited 3
 
int n;    
int adj[MAX][MAX];
int state[MAX]; 
void create_graph();
void BF_Traversal();
void BFS(int v);
 
int queue[MAX], front = -1,rear = -1;
void insert_queue(int vertex);
int delete_queue();
int isEmpty_queue();
 
int main()
{
	create_graph();
	BF_Traversal();
	return 0;
}
 
void BF_Traversal()
{
	int v;
	
	for(v=0; v<n; v++) 
		state[v] = initial;
	
	printf("Enter Start Vertex for BFS: \n");
	scanf("%d", &v);
	BFS(v);
}
 
void BFS(int v)
{
	int i;
	
	insert_queue(v);
	state[v] = waiting;
	
	while(!isEmpty_queue())
	{
		v = delete_queue( );
		printf("%d ",v);
		state[v] = visited;
		
		for(i=0; i<n; i++)
		{
			if(adj[v][i] == 1 && state[i] == initial) 
			{
				insert_queue(i);
				state[i] = waiting;
			}
		}
	}
	printf("\n");
}
 
void insert_queue(int vertex)
{
	if(rear == MAX-1)
		printf("Queue Overflow\n");
	else
	{
		if(front == -1) 
			front = 0;
		rear = rear+1;
		queue[rear] = vertex ;
	}
}
 
int isEmpty_queue()
{
	if(front == -1 || front > rear)
		return 1;
	else
		return 0;
}
 
int delete_queue()
{
	int delete_item;
	if(front == -1 || front > rear)
	{
		printf("Queue Underflow\n");
		exit(1);
	}
	
	delete_item = queue[front];
	front = front+1;
	return delete_item;
}
 
void create_graph()
{
	int count,max_edge,origin,destin;
 
	printf("Enter number of vertices : ");
	scanf("%d",&n);
	max_edge = n*(n-1);
 
	for(count=1; count<=max_edge; count++)
	{
		printf("Enter edge %d( -1 -1 to quit ) : ",count);
		scanf("%d %d",&origin,&destin);
 
		if((origin == -1) && (destin == -1))
			break;
 
		if(origin>=n || destin>=n || origin<0 || destin<0)
		{
			printf("Invalid edge!\n");
			count--;
		}
		else
		{
			adj[origin][destin] = 1;
		}
	}
}

Source: www.thecrazyprogrammer.com

Add Comment

1

All those coders who are working on the C++ based application and are stuck on BFS AND DFS IN C can get a collection of related answers to their query. Programmers need to enter their query on BFS AND DFS IN C related to C++ code and they'll get their ambiguities clear immediately. On our webpage, there are tutorials about BFS AND DFS IN C for the programmers working on C++ code while coding their module. Coders are also allowed to rectify already present answers of BFS AND DFS IN C while working on the C++ language code. Developers can add up suggestions if they deem fit any other answer relating to "BFS AND DFS IN C". Visit this developer's friendly online web community, CodeProZone, and get your queries like BFS AND DFS IN C resolved professionally and stay updated to the latest C++ updates. 

C++ answers related to "BFS AND DFS IN C"

View All C++ queries

C++ queries related to "BFS AND DFS IN C"

BFS AND DFS IN C DFS in c++ diameter of tree using dfs Dfs program in c++ DFS multisource bfs c++ bfs traversal of graph in c bfs in C++ bfs sudocode bfs traversal code bfs a bag1 contains red blue and green balls and bag2 contains red blue and green balls in c++ Write a C++ program using class and objects. You have to define multiple-member functions outside class and all those functions will be the same name write a c++ program that reads ten strings and store them in array of strings, sort them and finally print the sorted strings how to make sure the user inputs a int and not anything else c++ unordered_map of pair and int c++ random number between 1 and 10 random number generator c++ between 0 and 1 what is difference between ciel and floor how to compile and run cpp code in terminal how to add and read a file in c++ in visual studio what is difference between single inverted and double inverted in programming languages how to get the player view point location and rotation in ue4 c++ how to speed up cin and cout what is the meaning of life and everything in the universe set and get in c++ swap first and last character of string in c++ even and odd in c++ remove or erase first and last character of string c++ max and min of vector c++ map of int and vector syntax how to ensure the user inouts a int and not anything else c++ how to read and write in a file c++ what is difffrence between s.length() and s.size() How to find the suarray with maximum sum using divide and conquer get min and max element index from vector c++ difference between unsigned and signed int c++ find min and max in array c++ min and max heap in cpp C++ and endl std::cout and cout declare and define exception c++ Enter a key and display it's ascii value in c++ write and read string binary file c++ concatenation cpp int and stirng c++ forbids comparison between pointer and integer prints all the keys and values in a map c++ get first and last character of string c++ tellg and seekg c++ life the universe and everything solution c++ print pattern and space in cpp apple and orange hackerrank solution in c++ Dynamically allocate a string object and save the address in the pointer variable p. c++ max and min of vector Split a number and store it in vector sweetalert2 email and password c++ stack and queue Write a program that inputs test scores of a student and display his grade and c++ primitive and non primitive data types in c++ late binding and early binding in c++ difference between unsigned and signed c++ c++ sorting and keeping track of indexes how to declare string in c++ and taking the input buy and sell stock gfg heap sort heapify and max heap in binary tree working with char and string c++ using of and || c++ c++ program to input and print text using Dynamic Memory Allocation.loop Write a c++ loop to read n characters from the keyboard and store them in the vector v. insertion and extraction operator overloading in c++ Write a loop to read n strings (containing no white space) from the keyboard and store them in the vector v. delete and search edge in adjacency matrix of a graph array and for loop in c++ Write a function called clean that takes a C++ string as input and removes any characters in the string that are not letters except for space blanks. pass by value and pass by reference c++ sort strings by length and by alphabet c++ scanf always expects double and not float Polycarp found a rectangular table consisting of n rows and m columns. He noticed that each cell of the table has its number, obtained by the following algorithm "by columns": codeforces solution Road sign detection and recognition by OpenCV in c Given bigger NxN matrix and a smaller MxM matrix print TRUE if the smaller matrix can be found in the bigger matrix else print FALSE difference between pointer and reference in c++ private and public in namespace cpp Write a function called max_size that takes a vector of strings as an input and returns the string with the maximum length. cat and a mouse hackerrank solution in c Given the following declarations below. Write a loop to read a list of numbers from the keyboard terminated by -999 and store the even numbers (skip over the odd numbers) in the vector v. private and protected in c++ volume of shapes using class and operator overload increase the speed of cin and cout in c++ float to byte array and back c++ with memcpy command visual studio 2019 read and write text file c++ c++ program that calculates the distance covered by a vehicle given the speed and time. c++ Determine the start and end of the random number Write a program that inputs time in seconds and converts it into hh-mm-ss format Write a c++ program that reads a sentence (including spaces) and a word, then print out the number of occurrences of the word in the sentence how to find quotient and remainder in c++ Oriented and unoriented graphs C++ bounded and unbounded solution in lpp Missionaries and cannibals problem solution in C++ Find Missing And Repeating snake and ladder game code in c++ download accept the noun and the output of plural c++ Read in three numbers, and calculate the sum. Output the sum as an integer. in c visual studio simple program for sign in and sign up in c++ ask a question and answer it in code c++ Sum of first and last digit of a number in C++ c++ print the amount of odd integer between n and m prefix and postfix operator overloading in c++ c++ start process and get output get input from command line and run command in c++ c++ sum of even and odd numbers c++ linker input and output hwo to make a script to give track battery and give notification waiting in a serial as the spool reflect the queue operation. Demonstrate Printer Behavior in context of Queue.Subject to the Scenario implement the Pop and Push Using C++. new and delete operator in c++ can you add a bool and an int arrays and pointer in c++ calling by reference and pointers c++ error: ISO C++ forbids comparison between pointer and integer [-fpermissive] if(s[i] != "b"){ how to read and parse a json file with rapidjson I need to write an int function in which there are only cout statements and if I return 0/1 it prints them too. how to implement binders and decorators on c++ lik python? c++ generate random number upper and lower bound program to swap max and min in matrix ceil and floor difference between pointer and reference

Browse Other Code Languages

CodeProZone