Graph: addEdge - welche Methode ist welche?
Moderator: Algorithmen und Datenstrukturen
Forumsregeln
Bei Postings zu Aufgabe Nr. x = 1..4 lassen Sie Ihr Betreff bitte mit "x: " beginnen, gefolgt von einer möglichst präzisen Überschrift, danke!
Bei Postings zu Aufgabe Nr. x = 1..4 lassen Sie Ihr Betreff bitte mit "x: " beginnen, gefolgt von einer möglichst präzisen Überschrift, danke!
-
- Neuling
- Beiträge: 10
- Registriert: 29. Mai 2017 17:12
Graph: addEdge - welche Methode ist welche?
Habe die Beschreibungen in diff geworfen, kein Unterschied zu sehen. Ich nehme an, Zwei unterschiedliche Methoden würde unterschiedliche Beschreibungen haben.
Sicherlich kann man mal wieder rumprobieren, aber das uns im Testat gesperrte Copy/Paste hat hier anscheinend gute Arbeit geleistet. In der Vorlesung hat Herr Professor Weihe auch oft genug Copy/Paste vorgelebt. Ich finde das einfach heuchlerisch.
Entweder es ist ihnen wie uns verboten, oder Sie klären uns auf und lassen es uns trotzdem nutzen.
So oder so wäre es trotzdem fantastisch, wenn es ersichtlich wäre, welche Methode welche werden soll.
Sicherlich kann man mal wieder rumprobieren, aber das uns im Testat gesperrte Copy/Paste hat hier anscheinend gute Arbeit geleistet. In der Vorlesung hat Herr Professor Weihe auch oft genug Copy/Paste vorgelebt. Ich finde das einfach heuchlerisch.
Entweder es ist ihnen wie uns verboten, oder Sie klären uns auf und lassen es uns trotzdem nutzen.
So oder so wäre es trotzdem fantastisch, wenn es ersichtlich wäre, welche Methode welche werden soll.
Re: Graph: addEdge - welche Methode ist welche?
Guten Tag,
koenntest du noch einmal klarstellen, was genau hier an welcher Stelle gleich ist. Es kann sehr gut sein, dass sich hier ein Fehler eingeschlichen hat. Muss aber nicht.
koenntest du noch einmal klarstellen, was genau hier an welcher Stelle gleich ist. Es kann sehr gut sein, dass sich hier ein Fehler eingeschlichen hat. Muss aber nicht.
AuD - Codemonkey - Graphen u. Baeume - Development
-
- Neuling
- Beiträge: 10
- Registriert: 29. Mai 2017 17:12
Re: Graph: addEdge - welche Methode ist welche?
Beschreibung und Benennung der zu programmierenden Methoden in der genannten Aufgabe sind meiner Meinung nach gleich. Welche für DirectedGraph und welche für UndirectedGraph sein soll, ist mir nicht ersichtlich.
scheint hier das gleiche Thema zu sein:
viewtopic.php?f=167&t=36306&p=175416&hi ... ge#p175416
scheint hier das gleiche Thema zu sein:
viewtopic.php?f=167&t=36306&p=175416&hi ... ge#p175416
-
- Neuling
- Beiträge: 10
- Registriert: 29. Mai 2017 17:12
Re: Graph: addEdge - welche Methode ist welche?
war wohl schon im Mai:
viewtopic.php?f=167&t=36239&p=175261&hi ... ge#p175261
Korrektur: Mai, nicht April
viewtopic.php?f=167&t=36239&p=175261&hi ... ge#p175261
Korrektur: Mai, nicht April
Zuletzt geändert von beta_tester_1001 am 20. Jun 2017 22:50, insgesamt 2-mal geändert.
Re: Graph: addEdge - welche Methode ist welche?
31.Mai.Beitrag von kommiker » 31. Mai 2017 17:30
In diesem Aufgabenpacket sind zwei Methoden zu implementieren. Add für gerichtete Kanten und für ungerichtete Kanten. Leider funktioniert das "Beschreibungsfeld" nicht richtig und zeigt bei mir in beiden Feldern dasselbe an. Ergo: Ich weis nicht wo ich welche Methode implementieren soll.
lg kommiker
Wäre aber wirklich schön wenn das langsam mal geändert werden könnte.
lg kommiker
-
- Mausschubser
- Beiträge: 69
- Registriert: 9. Mai 2017 12:44
Re: Graph: addEdge - welche Methode ist welche?
Ein weiterer Fehler ist, dass bei getFanIn() die komplette Methodenbeschreibung fehlt und die Methode fälschlicher Weise im Reiter "this" steht.
Auch kenn ich den Konstruktor für T nicht auswendig, muss aber eine Kante erstellen um sie der EdgeList hinzu zu fügen. Generell ist diesmal das Framework viel zu dürftig erklärt!
Auch kenn ich den Konstruktor für T nicht auswendig, muss aber eine Kante erstellen um sie der EdgeList hinzu zu fügen. Generell ist diesmal das Framework viel zu dürftig erklärt!
-
- Mausschubser
- Beiträge: 69
- Registriert: 9. Mai 2017 12:44
Re: Graph: addEdge - welche Methode ist welche?
Außerdem wird nicht erwähnt, dass man linkTo beutzen muss, von wo und wie ganz zu schweigen.
Habs nach bisschen tüfteln herraus gefunden.. Hier die Methode für den ungerichteten Graph:
Der gerichtete Graph ist ähnlich nur mit 2 Zeilen weniger 
Habs nach bisschen tüfteln herraus gefunden.. Hier die Methode für den ungerichteten Graph:
Code: Alles auswählen
{
//Erzeugt eine Kante zwischen den gegebenen Startknoten und Endknoten, mit dem Kantengewicht data und fügt diese der Kantenliste hinzu.
if(from.getFanOut().size() >= getFanOutMax() ||to.getFanIn().size() >= getFanInMax()){
throw new FanOverflowException("blab");
}else{
ArrayList<Edge<N, E>> list = getEdgeList();
Edge<N, E> edgein = new Edge(from,to,data);
Edge<N, E> edgeout = new Edge(to,from,data);
edgein.linkTo(edgeout);
list.add(edgein);
setEdgeList(list);
}
}

-
- Neuling
- Beiträge: 3
- Registriert: 15. Jun 2017 10:56
Re: Graph: addEdge - welche Methode ist welche?
Ich habe gerade die Methode gelöst, und immernoch sind die Methoden-Beschreibungen gleich.
Allerdings fällt auf, dass es bei der "Methode 1" oben zusätzlich "linkTo" verfügbar ist, welches eindeutig darauf hinweist dass es sich dabei um die "ungerichtete Graph" - Methode handeln muss.
Aber mir ist bis jetzt keine Aufgabe in CodeMonkeys über den Weg gelaufen, die nicht mehrere schwerwiegende Fehler in der Beschreibung hat.
Interessanterweise steht oben für Directed Graph
Mehr noch: Passt man die Lösung für "undirected Graph" gemäß der Forderung oben an, funktioniert es nicht mehr. So macht Programmieren absolut keinen Spaß: Ausprobieren bis es klappt, völlig unabhängig von dem was in der Aufgabenstellung "beschrieben" wird.
Allerdings fällt auf, dass es bei der "Methode 1" oben zusätzlich "linkTo" verfügbar ist, welches eindeutig darauf hinweist dass es sich dabei um die "ungerichtete Graph" - Methode handeln muss.
Aber mir ist bis jetzt keine Aufgabe in CodeMonkeys über den Weg gelaufen, die nicht mehrere schwerwiegende Fehler in der Beschreibung hat.
Interessanterweise steht oben für Directed Graph
und für Undirected GraphDie Methode wirft eine FanOverFlowException genau dann wenn:
Die Anzahl der ausgehenden Kanten des Startknotens größer gleich der Konstanten FAN_OUT_MAX ist
Die Anzahl der eingehenden Kanten des Endknotens größer gleich der Konstanten FAN_IN_MAX ist
Für die Lösung ist aber die Selbe Abfrage in beiden Methoden nötig, nämlich:Die Methode wirft eine FanOverFlowException genau dann wenn:
Die Anzahl der ausgehenden Kanten des Startknotens und Endknotens größer gleich der Konstanten FAN_OUT_MAX ist
Die Anzahl der eingehenden Kanten des Startknoten und Endknotens größer gleich der Konstanten FAN_IN_MAX ist
Code: Alles auswählen
if(from.getFanOut().size() >= getFanOutMax() ) throw new FanOverflowException("Zu viele ausgehende Kanten");
if(to.getFanIn().size() >= getFanOutMax() ) throw new FanOverflowException("Zu viele eingehende Kanten");