Чтобы создать граф с использованием очереди в C++, вы можете использовать представление списка смежности. Вот пример реализации:
#include <iostream>
#include <queue>
#include <vector>
using namespace std;
// Function to add an edge to the graph
void addEdge(vector<int> adj[], int src, int dest) {
adj[src].push_back(dest);
adj[dest].push_back(src);
}
// Function to print the graph
void printGraph(vector<int> adj[], int V) {
for (int v = 0; v < V; ++v) {
cout << "Adjacency list of vertex " << v << endl;
cout << "head ";
for (auto x : adj[v])
cout << "-> " << x;
cout << endl;
}
}
// Function to create a graph using a queue
vector<int> createGraphUsingQueue() {
int V, E;
cout << "Enter the number of vertices: ";
cin >> V;
cout << "Enter the number of edges: ";
cin >> E;
vector<int> adj[V];
cout << "Enter the edges (source and destination):" << endl;
for (int i = 0; i < E; ++i) {
int src, dest;
cin >> src >> dest;
addEdge(adj, src, dest);
}
return adj;
}
int main() {
vector<int> adj[] = createGraphUsingQueue();
int V = sizeof(adj) / sizeof(adj[0]);
printGraph(adj, V);
return 0;
}
В этом примере addEdge()— это функция, добавляющая ребро между двумя вершинами графа. printGraph()— это функция для печати представления графа в виде списка смежности. Функция createGraphUsingQueue()предлагает пользователю ввести количество вершин и ребер, а затем принимает входные данные для каждого ребра, создавая граф с использованием реализации на основе очередей.