# Adjazenzlisten



## hornylist (21. August 2007)

Wenn ich z.b. folgendes straßennetz habe


*münchen ------- nürnberg------berlin
.
.
.
salzburg-------- wien*


(punkte sagen dass eine verbindung besteht - auch zwischen münchen und salzburg)


wie schreib ich das als adjazenzmatrix in java? die entferung spielt in diesem fall keine rolle!
wie schaut der code dazu aus?

vielen dank für eure antworten!


----------



## hornylist (22. August 2007)

hiiiilfffeeeeee....
bitte bitte helft mir!


----------



## Navy (22. August 2007)

Du erstellst Dir ein Objekt welches Namen und andere Atribute des Knotens sowie eine Liste von "Zeigern" auf andere Objekte gleichen Typs enthält. Sollte eine Gewichtung später noch implementiert werden, kann die Liste ganz einfach erweitert werden.


----------



## dto (22. August 2007)

Dein Object könnte dann so aussehen


```
class Stadt{
    private String                      name;
    private java.util.Vector<Stadt>     verbindungen;
   
    public Stadt(String n){
        name=n;        
    }
    
    public Stadt(String n,java.util.Vector<Stadt> v){
        name=n;
        verbindungen=v;
    }
    
    public String getName() {
        return name;
    }
    public java.util.Vector<Stadt> getVerbindungen(){
        return verbindungen;
    }
    
    public void addVerbindung(Stadt s){
        verbindungen.addElement(s);
    }
}
```


----------



## Matthias Reitinger (22. August 2007)

hornylist hat gesagt.:


> wie schreib ich das als adjazenzmatrix in java?


Entscheid dich bitte mal – Adjazenzlisten oder Adjazenzmatrix?


----------



## hornylist (22. August 2007)

sorry, tippfehler... sollte beide mal listen heißen!


ok hab das mal so versucht, haut mir aber dann folgende fehlermeldung um die ohren!

Stadt.java:7: <identifier> expected
          public java.util.Vector<Stadt>     verbindungen;
                                 ^
Stadt.java:19: <identifier> expected
          public Stadt(String n,java.util.Vector<Stadt> v){
                                                ^
Stadt.java:48: ')' expected
^
3 errors

jeweils vor <Stadt> kommt der fehler! 

jemand eine idee?


----------



## hornylist (22. August 2007)

kann ich das ganze auch ohne java.util.Vector machen


----------



## hornylist (22. August 2007)

münchen ------- nürnberg
.
.
.
salzburg

das hier als adjazenzliste!
kann mir jemand hierzu den code in java geben ?
das wär super hilfreich!


----------



## shutdown (22. August 2007)

Es wurde dir eigentlich schon geholfen...

Lass <Stadt> weg, dann musst du nur beim Auslesen bzw. Weiterverarbeiten deine Listen-Elemente wieder nach Stadt casten (Stadt)

Ansonsten sehe ich im dargebotenen Code keinen Fehler.

Welche Java-Version benutzt du?


Als Verwendungsbeispiel für dein Bildchen


```
Stadt m = new Stadt("München");
Stadt s = new Stadt("Salzburg");
Stadt n = new Stadt("Nürnberg");
m.addVerbindung(n);
m.addVerbindung(s);
```


----------



## hornylist (22. August 2007)

okay danke erstmal... haut soweit hin.... jetzt hab ich das grundprinzip verstanden! super!
DANKE


----------



## guddde_laune (22. August 2007)

Mhhh, warum habe ich denn da 2x _public Stadt_. Einmal mit einem und einmal mit zwei Attributen? Wozu brauch ich die denn? 



> public Stadt(String n){
> name=n;
> }
> 
> ...


----------



## guddde_laune (22. August 2007)

Aber ist der Code überhaupt eine Adiazenliste? Wir erstellen ja nur einen String und zeigen mit einem Vektor an einen anderen. Wir müssten zu jeder Stadt doch eigentlich eine Liste modeliieren!


*München --> Nürnberg --> Salzburg
.
.
Nürnberg -->München
.
.
Salzburg --> München*

?!:suspekt:


----------



## guddde_laune (22. August 2007)

oder nicht?


----------



## dto (22. August 2007)

nein du kannst dir das wie eine verkette Liste vorstellen also eine Instanz(erzeugtes Objekt)  stellt deine Stadt dar und er verwaltet in der Liste Städte zu denen er Verbindung hat. Also alle Städte zu denen er Verbindung hat müssen in der Liste stehen.

dann kannst du dir von jeder Stadt die Liste holen und und aus der Liste die Städte-->Namen oder von diesen Städten wieder die Liste.

Du musst dir natürlich die Struktur selber aufbauen.

Der java.util.Vector aus dem Grund das die Verwaltung nicht begrenzt ist

und zweimal  public stadt sind  2 verschiedene Konstruktoren .

wenn du nicht klar kommst sag bescheid


----------

