Nachbar von Knoten bestimmen

Status
Nicht offen für weitere Antworten.

mamelinchen

Bekanntes Mitglied
Wie finde ich herraus, ob ein Knoten einen Nachbarn hat?

Mittels der Adjazenzliste.

Aber wie komme ich da ran?

Und wie muss das ganze aussehen?

for(Knoten v, der : Nachbar von Knoten u)

Wie finde ich das herraus?
 

Civilazi

Bekanntes Mitglied
Ich geh mal davon aus, dass du irgendwo / irgendwie (Uni, Schule, was weiß ich) eine Graphenklasse schreibst / geschrieben hast / zumindest dran rankommst.
Woher sollen wir wissen, wie du da an die Adjazenzliste kommst? Woher sollen wir wissen, wie du von nem Knoten an die Nachbarn kommst?
Meine Knoten bieten eine Methode getNeighbours() an, vll. hast du etwas ähnliches?

Mehr Informationen sind hier doch angebracht
 

mamelinchen

Bekanntes Mitglied
Sorry, dachte das es allgemein beantwortet werden kann.

Ja ich habe eine.

Der Graph besteht aus:
static HashMap<Integer, Integer> vertexIndex;
// gibt zu einer Knoten-Id Index an, an dem der Knoten in vertices
// und die inzidenten Kanten in adjList abgelegt ist
private ArrayList<V> vertices; // Liste mit allen Knoten
private ArrayList<LinkedList<E>> adjList;

Die Knoten haben ne ID,farbe,entfernung,und vorgänger.
 

mamelinchen

Bekanntes Mitglied
public Collection<V> getNeighbours(V v) {
int id = v.getId();
return getNeighbours(id);
}

wie kann ich den jetzt damit arbeiten?
Steh echt aufm Schlauch...
 

Civilazi

Bekanntes Mitglied
Die Knoten haben ne ID,farbe,entfernung,und vorgänger.

Das ergibt meiner Meinung nach keinen Sinn. Meinst du die Kanten? was ist der Vorgänger?
Also sagen wir mal so:
Wenn du nen V v hast, kriegst du über v.getId() ja anscheinend die Id. In der HashMap kannst du dann zu dieser Id den Index nachschlagen. Dann schaust du in
List<E> adjEdges = adjList.get(index);
Dann gehst du durch alle inzidenten Kanten, merkst dir die Endknoten, die nicht dein ursprünglicher Knoten v sind und hast deine Nachbarn.

Mal nebenbei: Wofür brauchst du das? Und wer hat die Klasse geschrieben?
 

mamelinchen

Bekanntes Mitglied
Für die Breitensuche.

Die Klasse Graph ist von meiner Dozentin.

Die enthält eine Vertex, mit InstanzV. ID
Ich habe VertexNew extends Vertex erzeugt, mit farbe, distanz (um die distanz zum startknoten zu verdeutlichen, alle kantenlängen haben die Länge 1),
und vorgänger, damit man die Knoten einfärbt, nachdem man die besucht hat.

Der Vorgänger ist selber ein Knoten.
an die Methoden selber komme ich nicht ran, da sie alle nicht statisch sind.

Ich dachte mir eher so, das ich eine Collection <V> mache, dort alle Knoten vom gegebenen Graphen übergebe, und die alle als unbesucht markiere, und dann in eine collection alle nachbarn vom startknoten packe, und dann untersuche,ob die unmarkiert sind.
und die dann alle nacheinander ablaufe.
 

Civilazi

Bekanntes Mitglied
Aha, na das ist ja schonmal etwas :) An die Methoden, die Graph anbietet, kommst du ran, indem du einfach den Graphen erzeugst und dann g.methode(bla) einfach ausführst.
Ansonsten klingt das mit der Breitensuche doch nach einem Plan, du musst nur aufpassen, was du wo einfügst und wann ein Knoten als "besucht" gilt, damit du eine echte Breitensuche hast. Also Knoten hinten einfügen, vorn herausnehmen, Nachbarn wieder hinten ran... na ja wie BFS geht wirst du ja wissen :)
Die Nachbarn müsstest du so bekommen können, wie ich dir schrieb, oder diese Methode getNeighbours(id) benutzen? Irgendwas muss die ja auch tun. Oder hast du die geschrieben und die tut noch nix?
 

mamelinchen

Bekanntes Mitglied
JA die Breitensuche hab ich schon;)

Noch ne letzte Frage:

Mein Code:

Code:
			Collection<VertexNew> link =graph.getVertices();
			for (VertexNew a : link) {
				markiere,erhöhe
			}
			while (!queue is leer) {
				VertexNew u = queue.remove();
				Collection<VertexNew> nachbarn = graph.getNeighbours(u);
				for (VertexNew n : nachbarn)

DIe Collection haben alle die Verweise auf die jeweiligen Knoten oder nicht?

Würde das so funzen?

Oder stell ich mir das zu einfach vor?
------------------------------------

Die Graph-Klasse sieht wie folgt aus:

public class Graph <V extends VertexNew, E extends Edge<V>> {

Die Methoden liefern jeweils eine Collection <V>.

Das macht doch aber nichts das ich eine Collection <VertexNew>.erzeuge, V ist doch selber auch eine.

ODER?
 

Civilazi

Bekanntes Mitglied
Java:
			Collection<VertexNew> link =graph.getVertices();
			for (VertexNew a : link) {
				markiere,erhöhe
			}
			while (!queue is leer) {
				VertexNew u = queue.remove();
				Collection<VertexNew> nachbarn = graph.getNeighbours(u);
				for (VertexNew n : nachbarn)



DIe Collection haben alle die Verweise auf die jeweiligen Knoten oder nicht?

Würde das so funzen?

Ja, wenn die Methoden das tun, wie sie auch heißen, dann sollte das so funktionieren.
Klappts denn?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Methoden Eine Methode um zu testen ob es ein Nachbar gibt Java Basics - Anfänger-Themen 10
H Liste Knoten NullPointerException Java Basics - Anfänger-Themen 7
Cassy3 Binärer Suchbaum Knoten rauslöschen Java Basics - Anfänger-Themen 1
D spezifische Knoten in einem Baum zählen Java Basics - Anfänger-Themen 9
Y Knoten an einem gegebenen Index aus einer Liste entfernen. Java Basics - Anfänger-Themen 6
Y Wie greift man auf die Knoten in einem Binärbaum zu? Java Basics - Anfänger-Themen 5
J ActionListener von JCheckBox im Knoten von JTree funktioniert nicht Java Basics - Anfänger-Themen 2
S Binärbäume knoten zählen Java Basics - Anfänger-Themen 16
T Collections Methode (Knoten hinzufügen) für Graphen Java Basics - Anfänger-Themen 32
H Knoten-Reihenfolge einer LinkedList invertieren Java Basics - Anfänger-Themen 11
G Binärer Suchbaum Knoten zählen Java Basics - Anfänger-Themen 1
M Dijkstra Algorithmus in Graphen auf mehrere verschiedene Knoten anwenden lassen Java Basics - Anfänger-Themen 11
O Suchbaum Elternknoten finden Level eines Knoten bestimmen Java Basics - Anfänger-Themen 24
O Knoten und Liste verarbeitung Java Basics - Anfänger-Themen 20
E Knoten eines Baumes unter Bedinung zählen Java Basics - Anfänger-Themen 2
R Methoden Entferne alle identische Knoten (Typ String) aus verkettete Liste Java Basics - Anfänger-Themen 8
L Baum Knoten zählen Java Basics - Anfänger-Themen 6
L B+Baum innere Knoten erstellen Java Basics - Anfänger-Themen 3
L Graphen: Anzahl Knoten // Knoten in Array speichern Java Basics - Anfänger-Themen 4
I Erste Schritte Referenz zum Knoten davor, in einer Liste Java Basics - Anfänger-Themen 4
J Max. Anzahl von Knoten im Binärbaum Java Basics - Anfänger-Themen 3
M Werte der Knoten in Binärbaum addieren (iterativ) Java Basics - Anfänger-Themen 6
S Baumstruktur: tiefsten Knoten finden Java Basics - Anfänger-Themen 3
B Methoden BinärBaum als String Knoten löschen Java Basics - Anfänger-Themen 5
J Baum Knoten löschen Java Basics - Anfänger-Themen 10
T Datentypen Knoten Großvater finden? Java Basics - Anfänger-Themen 12
S Methoden Abtrennen ab einem gegebenen Knoten eines Binärbaums Java Basics - Anfänger-Themen 4
M Binärbaum - Problem bei Knoten anhängen / löschen Java Basics - Anfänger-Themen 5
B JTree knoten wird nicht übernommen Java Basics - Anfänger-Themen 4
L BinärTree, Knoten löschen Java Basics - Anfänger-Themen 6
Luk10 Anzahl der Knoten in einem Baum ausgeben! Java Basics - Anfänger-Themen 6
T gebe mir den ersten eltern knoten Java Basics - Anfänger-Themen 3
K verkettete Listen - Klasse Knoten Java Basics - Anfänger-Themen 19
L LinkedList vorgänger Knoten zurück geben Java Basics - Anfänger-Themen 4
H B-Baum: Knoten Position als Parameter oder als Variable im Objekt? Java Basics - Anfänger-Themen 4
D An bestimmten Knoten einer Liste zugreifen Java Basics - Anfänger-Themen 4
S Binärbaum - Klasse Knoten - Methode Suchen Java Basics - Anfänger-Themen 5
0x7F800000 zwei adjazenzlisten für jeden knoten eines graphen sinnvoll? Java Basics - Anfänger-Themen 17
C Bäume in Java. Knoten in Array speichern Java Basics - Anfänger-Themen 3
G eine Knoten aus einem Baum löschen. [SOLVED] Java Basics - Anfänger-Themen 7
F JTree-Knoten (DefaultMutableTreeNode) formatieren ? Java Basics - Anfänger-Themen 3
Y JTree: ein Knoten als Objekt Java Basics - Anfänger-Themen 2
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
M Radius von einer ellipse bestimmen Java Basics - Anfänger-Themen 7
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
rosima26 Java SubSum bestimmen Java Basics - Anfänger-Themen 76
M Ersten Index von Array bestimmen Java Basics - Anfänger-Themen 14
C Kollision zweier Rechtecke, Schnittpunkte bestimmen Java Basics - Anfänger-Themen 25
C Boolesche Formel, Belegungen bestimmen Java Basics - Anfänger-Themen 8
Der Grütz Verständnisfrage zu Übung aus Java Kurs - Schaltjahr bestimmen Java Basics - Anfänger-Themen 2
H Den Wert einer rekursiven Funktion bestimmen Java Basics - Anfänger-Themen 5
L Partitionierungsgruppen bestimmen Java Basics - Anfänger-Themen 22
H Klassen Die Länge einer Text-Node bestimmen Java Basics - Anfänger-Themen 2
H Minimum in einem Array bestimmen Java Basics - Anfänger-Themen 7
Kawastori Größe eines Arrays bestimmen Java Basics - Anfänger-Themen 13
L Datentypen Deklarierte Felder einer Generic Klasse bestimmen Java Basics - Anfänger-Themen 7
M Array Summe bestimmen? Java Basics - Anfänger-Themen 14
N Bereich Zufallszahl bestimmen (50 und 100 / 80 und 90) Java Basics - Anfänger-Themen 2
J Y-Koordinate von GUI-Objekt bestimmen Java Basics - Anfänger-Themen 2
J Java GUI- Objekte Position per Quelltext bestimmen Java Basics - Anfänger-Themen 4
L Anzahl der Aufrufe von Schleifen bestimmen Java Basics - Anfänger-Themen 1
F Summe in einem Array bestimmen Java Basics - Anfänger-Themen 3
H Ersten Zug bestimmen Java Basics - Anfänger-Themen 12
C Kleinsten Kreis einer Punktmenge bestimmen Java Basics - Anfänger-Themen 4
CptK Methoden Koordinaten relativ zur Rotation eines Bildes bestimmen Java Basics - Anfänger-Themen 8
J Breite eines Strings bestimmen Java Basics - Anfänger-Themen 4
E Maximalwert im Array bestimmen Java Basics - Anfänger-Themen 8
L Datentypen Date API - diese Woche bestimmen Java Basics - Anfänger-Themen 1
Y Rekursionsgleichung bestimmen Java Basics - Anfänger-Themen 3
Y Teile und Herrsche, längstes absteigendes Teilarray bestimmen Java Basics - Anfänger-Themen 12
T Min und Max einer Zahlenfolge bestimmen Java Basics - Anfänger-Themen 7
V Klassen Bestimmen Sie die erste und letzte Position an der ein 'c' steht? Java Basics - Anfänger-Themen 3
M Bestimmen, wie oft ein Char in einem Array vorkommt Java Basics - Anfänger-Themen 2
P Rückgabewert bestimmen Java Basics - Anfänger-Themen 17
C Vererbung - Ausgaben bestimmen Java Basics - Anfänger-Themen 6
T Anzahl bestimmter Werte eines arrays bestimmen Java Basics - Anfänger-Themen 4
G Datentypen Tipps, Ratschläge erwünscht bzgl. Datentyp bestimmen über Wertebereich Java Basics - Anfänger-Themen 5
E Summe der "Nachbarn" eines Wertes in einem Array bestimmen Java Basics - Anfänger-Themen 8
H Quotient durch Subtraktion bestimmen Java Basics - Anfänger-Themen 12
1 Größe einer zirkulären Liste bestimmen .. ? Java Basics - Anfänger-Themen 2
1 Minimum aller Elemente in einem Array bestimmen Java Basics - Anfänger-Themen 10
D Wochentag für eingegebenes Datum bestimmen anhand von Formel Java Basics - Anfänger-Themen 2
C Werteraum für Variable bestimmen Java Basics - Anfänger-Themen 5
S Vererbung exaktes "Objekt" der Unterklasse bestimmen Java Basics - Anfänger-Themen 5
Screen Wie geringste Absolutdifferenz zum Median bestimmen? Java Basics - Anfänger-Themen 8
V Aufrufendes Objekt bestimmen (nicht die Klasse) Java Basics - Anfänger-Themen 3
J Note bestimmen Java Basics - Anfänger-Themen 13
P BitSet- Objekt- Anzahl der Elemente bestimmen Java Basics - Anfänger-Themen 2
T Minimumsnorm bestimmen Java Basics - Anfänger-Themen 19
T String - kleinstes Zeichen bestimmen Java Basics - Anfänger-Themen 3
M bestimmen zu welchem Array ein Objekt "zugehört" Java Basics - Anfänger-Themen 5
L Koordinaten bestimmen Java Basics - Anfänger-Themen 8
S Zeit bestimmen Java Basics - Anfänger-Themen 4
H Anzahl Ziffer in Zahl bestimmen Java Basics - Anfänger-Themen 3
S Kleinster Wert im Array bestimmen Java Basics - Anfänger-Themen 4
J Klickposition genau bestimmen Java Basics - Anfänger-Themen 12
J Bestimmen ob String aus Kleinbuchstaben besteht Java Basics - Anfänger-Themen 16

Ähnliche Java Themen

Neue Themen


Oben