Convert this c++ code to c language   #include using namespace std; //FIND(X) int find(int X, vector& parent) { if (parent[X] == X) return X; return find(parent[X], parent); } //UNION(X,Y) void UNION(int X, int Y, vector& parent) { parent[Y] = X; } int main() { int n, m; cout << "Enter number of edges\n"; cin >> n; cout << "Enter number of nodes\n"; cin >> m; //edges list //each edge is a vector [u,v] vector > edges(n); for (int i = 0; i < n; i++) { int u, v; cout << "info for edge " << i + 1 << endl; cout << "Enter source node u: "; cin >> u; cout << "Enter destination node v: "; cin >> v; edges[i] = vector{ u, v }; } vector parent(m + 1); for (int i = 1; i <= m; i++) parent[i] = i; for (auto edge : edges) { //find set name for source node, u int x = find(edge[0], parent); //cout<

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Convert this c++ code to c language

 

#include <bits/stdc++.h> using namespace std; //FIND(X) int find(int X, vector<int>& parent) { if (parent[X] == X) return X; return find(parent[X], parent); } //UNION(X,Y) void UNION(int X, int Y, vector<int>& parent) { parent[Y] = X; } int main() { int n, m; cout << "Enter number of edges\n"; cin >> n; cout << "Enter number of nodes\n"; cin >> m; //edges list //each edge is a vector [u,v] vector<vector<int> > edges(n); for (int i = 0; i < n; i++) { int u, v; cout << "info for edge " << i + 1 << endl; cout << "Enter source node u: "; cin >> u; cout << "Enter destination node v: "; cin >> v; edges[i] = vector<int>{ u, v }; } vector<int> parent(m + 1); for (int i = 1; i <= m; i++) parent[i] = i; for (auto edge : edges) { //find set name for source node, u int x = find(edge[0], parent); //cout<<x<<endl; //find set name for destination node, v int y = find(edge[1], parent); //cout<<y<<endl; //if they are not in same set already, do their union if (x != y) { UNION(x, y, parent); } } //number of disjoint set is number of -1 in the parent set int count = 0; for (int i = 1; i <= m; i++) if (parent[i] == i) count++; cout << "Number of disjoint set is :" << count << endl; cout << "printing the parent array now:\n"; for (int i = 1; i <= m; i++) cout << parent[i] << " "; cout << endl; return 0; }

Expert Solution
steps

Step by step

Solved in 4 steps

Blurred answer
Knowledge Booster
Structure chart
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education