Dec 4th, 2016
147
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
2.
3. #include <iostream>
4. using namespace std;
5.
8. void show_matrix(int**, int);
9. void show_list(int**, int);
10.
11. int main() {
12.     cout << "How many vertices ? Number of Vertices: ";
13.     int number, **arr1, **arr2; cin >> number;
14.
15.     arr1 = new int*[number]; // mamory allocation for n pointers
16.     adjacency_matrix(arr1, number); // input taken
17.     show_matrix(arr1, number); // show adjacency matrix
18.
19.     cout << "\nAdjacency Matrix to List: " << endl;
20.     show_list(arr1, number);
21.
22.     arr2 = new int*[number]; // mamory allocation for n pointers [for a different array]
23.     adjacency_list(arr2, number); // input taken
24.     show_list(arr2, number); // show adjacency list
25.
26.     cout << "\nAdjacency List to Matrix: " << endl;
27.     show_matrix(arr2, number);
28.
29.     cout << endl;
30.     return 0;
31. }
32.
33. void adjacency_matrix(int **arr, int n) {
34.     cout << "\nGIVE YOUR MATRIX INPUT: [ " << n << " col. and rows ]" << endl;
35.     for (int i = 0; i < n; i++) {
36.         arr[i] = new int[n]; // memory allocation for n int(s) for each row
37.         for (int j = 0; j < n; j++) {
38.             cin >> arr[i][j];
39.         }
40.     }
41. }
42.
43. void adjacency_list(int **arr, int n) {
44.     cout << "\nGIVE ADJACENT VERTICES FOR EACH VERTEX: " << endl;
45.     for (int i = 0; i < n; i++) {
46.         arr[i] = new int[n]; // memory allocation for n int(s) for each row
47.         for (int j = 0; j < n; j++)
48.             arr[i][j] = 0;
49.         cout << "\nTotal Vertices for " << i + 1 << ": "; int x; cin >> x;
50.         cout << "\nAdjacent Vertices: ";
51.         for (int j = 0; j < x; j++) {
52.             int m; cin >> m;
53.             arr[i][m - 1] = 1;
54.         }
55.     }
56. }
57.
58. void show_matrix(int **arr, int n) {
59.     cout << "\nAdjacency matrix: " << endl;
60.     for (int i = 0; i < n; i++) {
61.         for (int j = 0; j < n; j++) {
62.             cout << arr[i][j] << " ";
63.         }
64.         cout << endl;
65.     }
66. }
67.
68. void show_list(int **arr, int n) {
69.     cout << "\nAdjacency list: " << endl;
70.     for (int i = 0; i < n; i++) {
71.         cout << i + 1 << " -> ";
72.         for (int j = 0; j < n; j++) {
73.             if (arr[i][j] == 1)
74.                 cout << j + 1 << " ";
75.         }
76.         cout << endl;
77.     }
78. }
RAW Paste Data