Lassen Sie jemanden eine ganze Zahl N als die Anzahl der Scheitelpunkte im Diagramm eingeben.Generieren von Zufallsgraph
- zuordnen zufällige Gewichte auf jeder Kante von 1 bis 10 nicht alle möglichen Kanten im Bereich sind zwar vorhanden! Wie im obigen Beispiel wird eine fehlende Kante durch ein X dargestellt.
- Geben Sie ein Paar (M, L) zurück, wobei M und L die Matrix- und Listendarstellung des (gleichen) zufälligen Graphen sind, den Sie erzeugen.
- Verwenden Sie nicht-stellige Zeichen als Vertexnamen, um Verwechslungen mit Kantengewichten zu vermeiden.
#include <iostream>
#include <stdlib.h>
using namespace std;
void gen_random_graph(int n)
{
int adj_matrix[n][n];
for(int u = 0; u < n; u++)
{
for (int v = 0; v < n; v++)
{
if(adj_matrix[u][v]==adj_matrix[v][u])
{
adj_matrix[u][v] = rand() % 10 + 1;
cout << adj_matrix[u][v] << endl;
}
}
}
}
int main()
{
int N;
cout << "enter number of vertices" << endl;
cin >> N;
gen_random_graph(N);
return 0;
}
Das ist mein Code ist so weit. Generiert es die Gewichte? und was bedeutet es, dass ich ein Paar zurückgeben muss?
Erstens ist Ihr 'Vertex' eine Eingabe für diese Funktion, daher sollten Sie diesen Wert auch nicht mit dem Wert aus der Befehlszeile ersetzen, indem Sie' cin' verwenden. Sie sollten 'Vertex' von der Befehlszeile außerhalb dieser Funktion aktualisieren und alles, was Sie über die Befehlszeile gefunden haben, übergeben. – NoseKnowsAll