F
Futzel
Hi,
sobald das Progamm startet bekomme ich einen Stack Overflow, und ich weiß nicht wo der Fehler in der Klasse liegen soll.
Hier einmal der betroffene Code:
Aufruf in der main:
sobald das Progamm startet bekomme ich einen Stack Overflow, und ich weiß nicht wo der Fehler in der Klasse liegen soll.
Hier einmal der betroffene Code:
C++:
template <class TV, int maxNodes>
class Digraph {
private:
class Vertex
{
public:
Vertex() { // Konstruktor
indegree = outdegree = ord = 0;
visited = living = false;
value = 0;
}
TV value; // Markierung
int indegree; // Eingangsgrad
int outdegree; // Ausgangsgrad
int ord; // Ordnungszahl des Knotens
bool visited; // Knoten-"besucht"-Marke
bool living; // Knoten existiert
};
double noArc;
int numvertices; // Anzahl der Knoten eines Digraphen
int numarcs; // Anzahl der Kanten eines Digraphen
Vertex vertex[maxNodes]; // repräsentiert Knoten des Digraphen
double arc[maxNodes][maxNodes]; // repräsentiert bewertete Kanten des Digraphen (-1=keine Kante) ARC = EDGE
public:
Digraph():noArc(-1.0) // Digraphen generieren
{
for (int i=0;i<maxNodes;i++) //Adajenz-Matrix füllen
for (int y=0;y<maxNodes;y++)
arc[i][y]=noArc;
}
~Digraph() // Digraphen freigeben
{
}
void InsertVertex (int n, TV m) // fügt neuen Knoten n mit Markierung m ein
{
if (n >= 0 && n < maxNodes)
{
vertex[n].value = m;
vertex[n].living = true;
}
}
......//weitere Methoden
Aufruf in der main:
C++:
Digraph<char,1000> G;
G.InsertVertex(3,'A');
G.InsertVertex(2,'B');
G.InsertVertex(1,'C');
G.InsertVertex(4,'D');